Exibir conteúdo consulta Web Part resultados em uma grade / Tabela

Visão geral e objectivo

Fora da caixa, MUSGO’ Web Part de consulta de conteúdo (CQWP) exibe seus resultados em um formato de lista, semelhante ao resultados da pesquisa. Também é possível exibir os resultados em um formato de grade (ou seja. Tabela HTML). Formatos de grade são melhores em algumas circunstâncias. Descrevo como conseguir esse efeito neste artigo.

Cenário de negócios

Já trabalhei com um cliente em uma distribuição de musgo de toda a empresa. Nós projetamos sua taxonomia tal que projetos são cidadãos de primeira classe na hierarquia e tem seu próprio site de nível superior. Gerentes de projeto mantém uma lista de singleton de informações de resumo do projeto, como o título, orçamento, Data de conclusão prevista, restante orçamento e outros campos de tipo de resumo. Por "singleton" Quero dizer uma lista de SharePoint personalizada garantida para conter apenas um item. Forma simplista, Ele se parece com isso:

imagem

A abordagem técnica é o mesmo descrito here (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). O CQWP usa uma transformação XSL para emitir o HTML para o navegador para processar.

Eu sempre imagino o resultado antes de mergulhar o XSL porque XSL é um pesadelo. Aqui está o meu resultado desejado:

imagem

HTML como este gera esse resultado:

<HTML>
 <corpo>
 <Centro>
 <tabela fronteira= 1>

<!-- Rótulos->
 <TR bgcolor= azul>
 <TD><fonte Cor= branco><b>Nome do projeto</b></fonte></TD>
 <TD alinhar= direita><fonte Cor= branco><b>Data completa</b></fonte></TD>
 <TD alinhar= direita><fonte Cor= branco><b>Orçamento</b></fonte></TD>
 <TD alinhar= direita><fonte Cor= branco><b>Despesas reais</b></fonte></TD>
 <TD><fonte Cor= branco><b>Status geral</b></fonte></TD>
 </TR>

<TR>
 <TD>Sala de computadores re-Wire.</TD>
 <TD alinhar= direita>02/01/08</TD>
 <TD alinhar= direita>22,500.00</TD>
 <TD alinhar= direita>19,000.00</TD>
 <TD>Em andamento</TD>
 </TR>

<TR>
 <TD>Provisionar servidores para atualizar o SQL</TD>
 <TD alinhar= direita>04/01/08</TD>
 <TD alinhar= direita>7,500.00</TD>
 <TD alinhar= direita>0.00</TD>
 <TD>Planejado</TD>
 </TR>

</tabela>
 </Centro>
 </corpo>
</HTML>

Abordagem

Siga estas etapas para criar a grade:

  1. Identificar os componentes da grade (linhas/colunas).
  2. Definir e criar colunas de site necessárias.
  3. Criar páginas para os projetos e listas de singleton.
  4. Adicionar o CQWP a uma página da web e configurá-lo para pesquisar suas listas.
  5. Modificar o XML do CQWP para reunir-se as colunas adicionais.
  6. Modificar o XSL para gerar uma tabela.

Vou concentrar-me no número 6. Números de um a quatro são direta e algo que qualquer usuário CQWP já feito. O número cinco tem sido bem documentado por outros, incluindo este artigo carga exaustivo de screen shot do MSDN here (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) blog do Heather Salomão e here (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Porcas e parafusos

Iniciar e implementar as etapas de um a cinco de acordo com a documentação do MSDN e artigo Heather Solomon.

Neste ponto, você adicionou seu CQWP para a página e você tem seu <CommonViewFields> configurado conforme necessário.

Seguindo os passos habituais, Posso obter estes resultados intermédios:

1. Criar um tipo de conteúdo, uma lista personalizada modelos para esse tipo de conteúdo e dois sites. Aqui é o tipo de conteúdo:

imagem

Aqui é a estrutura do site:

imagem

2. Adicionar o CQWP depois de criar meu projeto subsites e singleton listas de resumo do projeto:

imagem

3. Adicionar todas as informações adicionais que eu quero através da <CommonViewFields>:

        <Propriedade nome="CommonViewFields" tipo="Cadeia de caracteres">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</Propriedade>

Nota que eu tinha que manter todos os campos de propriedade em uma linha ou não iria funcionar (CQWP me diria que a consulta não retornou nenhum item).

4. Neste ponto, Estamos prontos para ir além do artigo do MSDN e aleta sobre sobre artigo de Heather Solomon. Siga seus passos, começando próximo passo #5 para criar um personalizado / unghosted versão de ItemStyle. Eu seguir o Conselho de Heather, para cima até a etapa 11 e obter estes resultados intermédios:

4.1: Meu modelo de XSL nome da seguinte forma:

<XSL:nome do modelo = "grade" corresponder = "linha[@Style = 'Grid']" modo = "itemstyle">

Eu também ligeiramente modificá-la sugeriu <XSL:for-each …> Adicionando um <DRI> marca para fornecer uma listagem mais limpa:

    <XSL:for-each Selecione="@*">
      P:<XSL:valor da Selecione="nome()" /><br/>
    </XSL:for-each>

4.2: Posso modificar a web part, ir para a aparência e selecione minha grade"" estilo:

imagem

Aplicar a alteração e aqui está o resultado:

imagem

Do acima exposto podemos ver que os campos que nós queremos (Nome do projeto, despesas, estatuto, etc) estão disponíveis para nós usarmos quando emitimos o HTML. Não só isso, Mas vemos os nomes pelos quais nós deve fazer referência a essas colunas na XSL. Por exemplo, podemos fazer referência Status do projeto como "Project_x005F_x0020_Name".

Neste ponto, Devemos afastar-se do blog de Heather e de ombros destes gigantes, Posso adicionar meu próprios pouco.

ContentQueryMain.xsl

OBSERVAÇÃO: Ao fazer alterações em tanto ContentQueryMain.xsl como ItemStyle.xsl, você precisa verificar que os arquivos de volta em antes de ver o efeito das alterações.

Para fins de tomada de grade, MOSS usa dois diferentes arquivos XSL para produzir os resultados que vemos de um CQWP. Para gerar o bit anterior da saída, Nós modificamos ItemStyle. MOSS, na verdade, usa outro arquivo XSL, ContentQueryMain para, em conjunto com ItemStyle para gerar o HTML. Como seu nome implica, ContentQueryMain.xsl é o principal"" XSL que controla o fluxo global de tradução. Ele percorre todos os itens encontrados e passa-los um por um para modelos em ItemStyle. Modificaremos ItemStyle para gerar a céu aberto <tabela> etiqueta antes de emitir a primeira linha de dados e o fechamento <tabela> etiqueta depois de emitir a última linha. Para realizar essa tarefa, ContentQueryMain.xsl é modificado para passar dois parâmetros para nossa grade"" modelo em ItemStyle.xsl, "última linha" e a "linha atual". ItemStyle usa essas condicionalmente emitir as etiquetas necessárias.

Usando a técnica do Heather Salomão, Podemos localizar ContentQueryMain. Situa-se no mesmo lugar como ItemStyle. Esta captura de tela deve ajudar:

imagem

Temos de fazer as seguintes alterações:

  • Modificar um modelo xsl, "CallItemTemplate" que na verdade invoca o nosso modelo de grade em ItemStyle. Vamos passar dois parâmetros para o modelo de grade para que ele terá os dados necessários para gerar condicionalmente abrindo e fechando <tabela> marcas.
  • Modificar outro pouco de ContentQueryMain.xsl que chama o CallItemTemplate"" passá-lo um LastRow"" parâmetro de modo que LastRow pode ser transferido para o nosso modelo de grade.

Localize o modelo chamado "OuterTemplate.CallItemTemplate" identificado pela Cadeia de caracteres:

  <XSL:modelo nome="OuterTemplate.CallItemTemplate">

Substituir o modelo inteiro como segue:

  <XSL:modelo nome="OuterTemplate.CallItemTemplate">
    <XSL:param nome="CurPosition" />

    <!--
      Adicionar o LastRow"" parâmetro.
      Nós só usá-lo quando a passagem de estilo de item no é "Grade".
    -->
    <XSL:param nome="LastRow" />

    <XSL:Escolha>
      <XSL:Quando teste="@ Estilo = 'NewsRollUpItem'">
        <XSL:aplicar-se-modelos Selecione="." modo="ItemStyle">
          <XSL:com-param nome="EditMode" Selecione="$cbq_iseditmode" />
        </XSL:aplicar-se-modelos>
      </XSL:Quando>
      <XSL:Quando teste="@ Estilo = 'NewsBigItem'">
        <XSL:aplicar-se-modelos Selecione="." modo="ItemStyle">
          <XSL:com-param nome="CurPos" Selecione="$CurPosition" />
        </XSL:aplicar-se-modelos>
      </XSL:Quando>
      <XSL:Quando teste="@ Estilo = 'NewsCategoryItem'">
        <XSL:aplicar-se-modelos Selecione="." modo="ItemStyle">
          <XSL:com-param nome="CurPos" Selecione="$CurPosition" />
        </XSL:aplicar-se-modelos>
      </XSL:Quando>

      <!--
              Transmitir posição atual e lastrow para o modelo de itemstyle.xsl de grade.
              ItemStyle.xsl que usará para emitir o abrir e fechar <tabela> marcas.
      -->
      <XSL:Quando teste="@ Estilo = 'Grid'">
        <XSL:aplicar-se-modelos Selecione="." modo="ItemStyle">
          <XSL:com-param nome="CurPos" Selecione="$CurPosition" />
          <XSL:com-param nome="Última" Selecione="$LastRow" />
        </XSL:aplicar-se-modelos>
      </XSL:Quando>

      <XSL:caso contrário>
        <XSL:aplicar-se-modelos Selecione="." modo="ItemStyle">
        </XSL:aplicar-se-modelos>
      </XSL:caso contrário>
    </XSL:Escolha>
  </XSL:modelo>

Os comentários descrevem a finalidade das alterações.

É claro, o OuterTemplate.CallItemTemplate"" Chama-se de outro modelo. Localize esse modelo procurando por essa seqüência de caracteres de texto:

<XSL:modelo nome="OuterTemplate.Body">

Percorra as instruções em OuterTemplate.Body e inserir o parâmetro LastRow como segue (mostrado como um comentário em itálico):

<XSL:modelo de convite nome="OuterTemplate.CallItemTemplate">
  <XSL:com-param nome="CurPosition" Selecione="$CurPosition" />
  <!-- Inserir o parâmetro LastRow. -->
  <XSL:com-param nome="LastRow" Selecione="$LastRow"/>
</XSL:modelo de convite>

Depois de tudo isso, Finalmente temos coisas configurar corretamente para que o nosso ItemStyle.xsl pode emitir <tabela> marcas no lugar certo.

ItemStyle.Xsl

OBSERVAÇÃO: Mais uma vez, o check-in ItemStyle.xsl depois de fazer todas as alterações para que você veja o efeito dessas alterações.

Aqui temos duas tarefas:

  • Substituir o modelo inteiro de grade. Você pode copiar/colar de baixo.
  • Adicionar alguns patranhas fora da definição de modelo que permite "formatcurrency" modelo de trabalho. (Você pode dizer que eu tenho um identificador tênue em XSL).

Primeira, perto do topo da ItemStyle.xsl, Adicione esta linha:

  <!-- Alguns patranhas que nos capacita a Exibir dos e.u.. moeda. -->
  <XSL:decimal-formato nome="pessoal" dígito="D" />

  <XSL:modelo nome="Padrão" correspondência="*" modo="ItemStyle">

Nota que eu adicionado diretamente antes do <XSL:nome do modelo = padrão"" …> definição.

Próximo, voltar para o nosso modelo de grade. Substituir o modelo de grade inteiro com o código abaixo. Isso é completamente comentou, mas não hesite em me e-mail ou deixar comentários no meu blog, se você tiver perguntas.

  <XSL:modelo nome="Grelha" correspondência="Linha[@ Estilo = 'Grid']" modo="ItemStyle">

    <!--
      ContentMain.xsl passa CurPos e última.
      Podemos usá-los para emitir condicionalmente a abrir e fechar <tabela> marcas.
    -->
    <XSL:param nome="CurPos" />
    <XSL:param nome="Última" />

    <!-- As seguintes variáveis são inalteradas desde o padrão ItemStyle -->
    <XSL:variável nome="SafeImageUrl">
      <XSL:modelo de convite nome="OuterTemplate.GetSafeStaticUrl">
        <XSL:com-param nome="UrlColumnName" Selecione="'ImageUrl'"/>
      </XSL:modelo de convite>
    </XSL:variável>
    <XSL:variável nome="SafeLinkUrl">
      <XSL:modelo de convite nome="OuterTemplate.GetSafeLink">
        <XSL:com-param nome="UrlColumnName" Selecione="'LinkUrl'"/>
      </XSL:modelo de convite>
    </XSL:variável>
    <XSL:variável nome="DisplayTitle">
      <XSL:modelo de convite nome="OuterTemplate.GetTitle">
        <XSL:com-param nome="Título" Selecione="@Title"/>
        <XSL:com-param nome="UrlColumnName" Selecione="'LinkUrl'"/>
      </XSL:modelo de convite>
    </XSL:variável>
    <XSL:variável nome="LinkTarget">
      <XSL:se teste="@OpenInNewWindow = 'True'" >Blank</XSL:se>
    </XSL:variável>

    <!--
      Aqui, definimos uma variável, "tableStart".  Este contém o HTML que usamos para definir a abertura da mesa, bem como os rótulos de coluna.  Observe que, se CurPos = 1, inclui o HTML em uma marca CDATA.
      Caso contrário, vai ser vazio.

      O valor de tableStart é emited sempre ItemStyle é chamado através de ContentQueryMain.
    -->
    <XSL:variável nome="tableStart">
      <XSL:se teste="$CurPos = 1">
        <![CDATA[
        <borda de tabela = 1>
          <TR bgcolor = "azul">
            <TD><cor da fonte = "branco"><b>Nome do projeto</b></fonte></TD>
            <TD align = "right"><cor da fonte = "branco"><b>Data completa</b></fonte></TD>
            <TD align = "right"><cor da fonte = "branco"><b>Orçamento</b></fonte></TD>
            <TD align = "right"><cor da fonte = "branco"><b>Despesas reais</b></fonte></TD>
            <TD><cor da fonte = "branco"><b>Status geral</b></fonte></TD>
          </TR>
        ]]>
      </XSL:se>
    </XSL:variável>

    <!--
      Outra variável, tableEnd simplesmente define o fechamento marca de tabela.

      Tal como acontece com tableStart, sempre é emited.  Eis porque seu valor é atribuído condicionalmente com base em se nós já foi passados a última linha por ContentQueryMain.
    -->
    <XSL:variável nome="tableEnd">
      <XSL:se teste="$CurPos = $Last">
        <![CDATA[ </tabela> ]]>
      </XSL:se>
    </XSL:variável>

    <!--
      Sempre emitir o conteúdo de tableStart.  Se isto não é a primeira linha que passou para nós por ContentQueryMain, Então sabemos que seu valor será em branco.

      Desativar a saída saída porque quando tableStart não em branco, Ele inclui HTML real que nós queremos ser processado pelo navegador.  Se não contarmos o analisador XSL para desabilitar saída escapando, Ele irá gerar coisas como"&lt;tabela&gt;" em vez de"<tabela>".
    -->
    <XSL:valor da Selecione="$tableStart" desativar-saída-saída="Sim"/>


    <TR>
      <!--
      P:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <TD>
        <XSL:valor da Selecione="@ Project_x005F_x0020_Name"/>
      </TD>

      <TD alinhar="direito">
        <XSL:valor da Selecione="@ Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD alinhar="direito">
        <XSL:modelo de convite nome="FormatCurrency">
          <XSL:com-param nome="valor" 
Selecione="@ Project_x005F_x0020_Budget"></XSL:com-param> </XSL:modelo de convite> </TD> <TD alinhar="direito"> <XSL:modelo de convite nome="FormatCurrency"> <XSL:com-param nome="valor" Selecione="@ Project_x005F_x0020_Expenses">
</XSL:com-param> </XSL:modelo de convite> </TD> <TD> <XSL:valor da Selecione="@ Project_x005F_x0020_Status"/> </TD> <!-- Todos os itens a seguir está comentada para esclarecer as coisas. No entanto, trazer de volta e o material em um <TD> para ver seu efeito. --> <!-- <div id = "linkitem" Classe = "item"> <XSL:se teste = "Cadeia de caracteres de comprimento($SafeImageUrl) != 0 "> <div class = "image-área-esquerda"> <um href = "SafeLinkUrl{$SafeLinkUrl}" destino = "{$LinkTarget}"> <Classe img = "imagem-fixo-largura" src = "{$SafeImageUrl}"
Alt = "{@ ImageUrlAltText}"/> </uma> </div> </XSL:se> <div class = "item de link"> <XSL:modelo de convite
Name="OuterTemplate.CallPresenceStatusIconTemplate"/> <um href = "SafeLinkUrl{$SafeLinkUrl}"
destino = "{$LinkTarget}" title = "{@ LinkToolTip}"> <XSL:valor da selecione = "$ DisplayTitle" /> </uma> <div class = "description"> <XSL:valor de select="@Description" /> </div> </div> </div>
--> </TR> <!-- Emitir o fechamento marca de tabela. Se não estamos na última linha, Este será em branco. --> <XSL:valor da Selecione="$tableEnd" desativar-saída-saída="Sim"/> </XSL:modelo> <XSL:modelo nome="FormatCurrency"> <XSL:param nome="valor" Selecione="0" /> <XSL:valor da Selecione='formato-número($valor, "$ DDD,DDD,DDD.DD", "pessoal")' /> </XSL:modelo>

22 pensamentos "Exibir conteúdo consulta Web Part resultados em uma grade / Tabela

  1. Andreas

    Aah… foi porque meu estilo de lista um nome diferente e não percebeu que no ContentQueryMain.xsl verifica a existência de "estilo":

    <XSL:Quando test="@Style='NameOfMyStyle'">

    Com que renomeou funcionou. 🙂

    Resposta
  2. Andreas

    Quase funcionou para mim: Gerenciar a saída do </tabela> marca de fim corretamente, mas a marca inicial estiver faltando. Parece que o teste = "$ CurPos = 1" não retornar verdadeiro. Mas por que?

    Resposta
  3. Anand singh Rawat

    Ótimo Post. Paul eu tenho feito todas as coisas acima. Eu tenho uma consulta, Como posso alcançar a soma de "TOTAL real Expences" ou a soma do valor das duas colunas.

    Resposta
  4. Lisa

    Você fez todo o trabalho com a criação de arquivos personalizados de xsl de ContentQueryMain e ItemStyle? A razão que eu peço é que eu não quero preocupar minhas estilos personalizados sejam sobrescritos com quaisquer patches ou upgrades. Você tem exemplos? Eu tentei fazer uma cópia idêntica do ContentQueryMain.xsl e carregar essa nova cópia personalizada para a biblioteca de estilos. Ao colocar uma referência a esse arquivo xsl na propriedade de MainXslLink da. WebPart, Eu recebo 401 não autorizado. O arquivo xsl personalizado é uma versão publicada e todos tem acesso de leitura a ele.

    Resposta
  5. Greg Sheridan

    Oi, Este foi um lançamento realmente útil. Eu tê-lo todos trabalhando, e a mudança também implementada Mike Brown para grupos
    os resultados dentro da tabela por tudo o que eu escolher como o parâmetro Group By nas propriedades do CQWB.
    Eu fiz o título um link também, assim que ele funciona muito bem. Eu ainda tenho um problema, Embora. Eu estou agrupando os resultados por nome do site. Dentro da tabela, Ele agrupa-los muito bem, e olha grande, mas ainda é impressão fora do grupo
    nomes(no meu caso os nomes de site) acima da tabela. Alguém sabe como se livrar delas?
    Obrigado,
    Greg

    Resposta
  6. Sem nome

    Belo artigo. Eu consegui dar minha tabela a aparência das listas do Sharepoint padrão, analisando o código-fonte da lista. Aqui estão os principais blocos HTML necessários para ajustar em ItemStyle:

    <Largura da tabela = "100%" Classe = "ms-listviewtable" border = 0 cellspacing = 0 cellpadding = 1 dir = "None">

    <!–CABEÇALHO–>
    <Classe TR = "ms-viewheadertr" VALIGN = TOP>
    <Âmbito de aplicação do TH nowrap = "col" Classe = "ms-vh2"><div style = "width:100%;posição:relativa;esquerda:0;Início:0;">
    <Estilo de tabela = "largura:100%;" CtxNum = "1" altura = 100%" CellSpacing = 1 cellpadding = 0 class = "ms-unselectedtitle">
    <TR>
    <Largura de TD = "100%" Classe = "ms-vb" NoWrap>
    Texte du titre ici

    </TD>
    <Estilo TD = "posição:absoluto;">
    </TD>
    </TR>
    </TABELA></div>
    </TH>

    <!–Repita para todas as células de cabeçalho–>
    </TR>

    <!– Dados da tabela –>
    <Classe TR = "">
    <!–Coluna de dados, usar código de Paul para o primeiro com o hiperlink –>
    <Classe TD = "ms-vb2">Dados aqui</TD>

    <!–Coluna vazia–>
    <Classe TD = "ms-vb2">
    <abrangem dir = None></extensão><
    /TD>

    <!–Coluna da data–>
    <Classe TD = "ms-vb2">
    <NOBR>11/12/2008</NOBR>
    </TD>
    </TR>

    <!–***Linha alternativa – Usar uma nova variável XSL que irá inserir a classe alternativo baseada a atual linha de módulo 2–>
    <Classe TR = "ms-alternando">

    </TR>
    </TABELA>

    Resposta
  7. Mike Brown
    Zoltan,
    Eu estava trabalhando sobre o mesmo problema que você. Eu queria que todos os meus itens exibidos em uma forma agrupada em vez de apenas uma lits. Aqui é como atingi-lo.
    ContentQueryMain.xsl
    <XSL:Quando test="@Style='Grid'">
    <XSL:apply-templates selecione = "." modo = "itemstyle">
    <XSL:nome de com-param = "CurPos" Selecione = "$ CurPosition" />
    <XSL:nome de com-param = "Last" Selecione = "$ LastRow" />
    <!–Adicionar esta nova seção para passar o parâmetro indicando um novo grupo começou–>
    <XSL:nome de com-param = "StartNewGroup" Select="@__begingroup" />
    </XSL:aplicar-se-modelos>
    </XSL:Quando>
    ItemStyle.xsl
    Adicionar o parâmetro
    <XSL:param name = "StartNewGroup" />
    Adicionar este texto como a primeira linha de dados
    <XSL:Escolha>
    <XSL:quando testar = "$StartNewGroup = 'True'">
    <TR>
    <TD >
    <XSL:convite-modelo name="OuterTemplate.GetGroupName">
    <XSL:nome de com-param = "GroupName" Select="@*[nome()= Grupo $]"/>
    <XSL:nome de com-param = "GroupType" Selecione = "$ GroupType" />
    </XSL:modelo de convite>
    </TD>
    </TR>
    </XSL:Quando>
    <XSL:caso contrário>
    </XSL:caso contrário>
    </XSL:Escolha>
    Isto deve resolver seu problema de agrupamento em sua grade. Cada grupo vai começar agora com uma nova linha, indicando o nome do grupo. Minha solução realmente adicionei um espaço em branco <TD /> nos dados do travessão também assim o agrupamento destacou muito melhor.
    Site1
    datacolumn1 datacolumn2 datacolumn3 etc

    datacolumn1 datacolumn2 datacolumn3 etc
    Site2
    datacolumn1 datacolumn2 datacolumn3 etc
    Site3

    datacolumn1 datacolumn2 datacolumn3 etc

    datacolumn1 datacolumn2 datacolumn3 etc
    etc.
    Resposta
  8. Zoltan
    Olá Paulo,
    Agradecimentos para o borne, Eu consegui organizar meus resultados de consulta em uma grade, que é muito útil. No entanto, Eu deveria ir mais longe e meus resultados com base em Sites do grupo. Neste momento, os nomes de Site são listados em primeiro lugar, e, em seguida, o existe apenas uma grade grande recolha de todas as linhas de diferentes sites. Algo como isto:
    Nome do site1
    Nome do site2
    Dados na grade para todos os sites
    Alguma idéia sobre o que eu deveria modificar para obter meus dados como segue:
    Nome do site1
    Dados na grade para Site1
    Nome do site2
    Dados na grade para o Site2
    Obrigado antecipadamente,
    Zoltan
    Resposta
  9. Pierre Joubert
    Post fantástico, resolveu o meu problema que eu tinha.
    Meu único problema está exibindo o campo AssignedTo, Eu configurá-lo com o usuário"" tipo de campo e o webpart importado, em seguida, exibe o seguinte erro:
    "Houve um erro ao recuperar dados a serem exibidos neste Web Part."
    Eu tentei usar todos os tipos de campo possíveis, com qualquer outro usuário"" não exibir o erro, Mas ele não exibe nada no campo. Então eu estou supondo que o tipo de campo de usuário está correto, Então deve estar sentindo falta uma configuração em algum lugar.
    Alguma idéia sobre isso?
    Cumprimentos
    Pierre
    Resposta
  10. Charftong
    Ótimo Post!!! Muito muito útil.
    Pergunta rápida, você fez qualquer trabalho sobre como exibir o campo AssignedTo ou ModifiedBy com presença? Por alguma razão, sempre que eu tento dipslay o campo Assigned To a CQWP, Ele sempre exibe com como exemplo "203;#Charf Tong". Não consigo encontrar uma maneira em torno deste.
    Resposta
  11. Jennifer Davis
    Paulo
    Excelente artigo, Obrigado. Eu estou fazendo algo muito semelhante, mas deseja exibir um link para o site do projeto, em vez do item na lista. Por exemplo, Temos 25 sites de projeto de nível superior e cada um contém uma lista com tipos de conteúdo. Estes são o nome do projeto, Divisão, Descrição. Eu quero usar a web part de consulta de conteúdo para puxar esses dados e conseguiram exceto que por padrão, a URL leva-me para a entrada do item na lista e eu realmente preciso dele para me levar para o site do projeto. Você pode me dar algum Conselho?
    Obrigado
    Jen
    Resposta
  12. Paul Galvin
    Kieren,
    Eu sempre uso o visual studio para editar o XSL. Ele fornece a codificação de cores e também tem algum suporte intellisense boa.
    –Paulo
    Resposta
  13. Kieran escreveu:

    Oi Paulo,

    Ao trabalhar com a web part de consulta de conteúdo e de xml/xsl, você encontrou as boas maneiras de formatar seu xslt? Tentando fazer alterações e testar o design está a revelar uma certa dor na um ** apenas usando um editor de texto…

    Tudo de bom

    Resposta
  14. Michael Dipay
    Sobre o assunto eu estava tendo a última vez onde não exibir as imagens de exibição de grade, mas em vez disso, exibe o texto (https://myweb.com/Marketing/images/icn-order.gif,). Eu me viro para resolvê-lo com a ajuda do SharePoint Designer, criar modo de exibição personalizado e selecionando as colunas personalizadas que eu quero mostrar. Eu descobri que o tipo de coluna de imagens são mostradas como URL(vírgula) (EG. https://myweb.com/Marketing/images/icn-order.gif,). O formato atual é texto, então eu tenho que mudá-lo para imagem de xsl comum:Tarefas de valor-de-> Formato de imagem. Essa Alterar a exibição de imagens personalizadas que eu queria mostrar. Copiei o código para visualizar a imagem ( <img borda ="0" src = "{subseqüência-antes(@ IcnOrder, ‘, ‘)}" /> ) E no arquivo ItemStyle eu tenho que mudar o @PICTURECOLUMNNAME para o código <img borda ="0" src = "{subseqüência-antes(@ IcnOrder, ‘, ‘)}" /> . Em seguida, salvá-lo. Agora meus resultados de grade da tabela para mostrar o texto como a imagem personalizada do tipo colunas.
    Resposta
  15. Helen
    Oi Paulo,
    Obrigado para o excelente artigo!
    Você mencionou a formatação condicional – "Você também pode colocar na formatação condicional, como exibir projetos que excederam o seu orçamento em vermelho." Por acaso você tem um exemplo de código para isso?
    Obrigado novamente!
    Helen
    Resposta
  16. Michael Dipay
    Oi Paulo,
    Foi um ótimo artigo e foi capaz de gerar os mesmos resultados como esperado. Eu tenho um requisito para mostrar uma imagem na grade como uma de suas colunas. Ele não está exibindo a imagem da grelha, mas em vez disso, exibe a url da imagem com um (,) vírgula no final.
    (EG. https://myweb.com/Marketing/images/icn-order.gif, )
    Devo usar imagem ou figura no campo, digite CommonViewFields? (EG. InternalColumnName, Imagem)
    Obrigado,
    Mike
    Resposta
  17. Ijiyemi Santos

    Seu post é exatamente o que estava procurando. No entanto, Eu não posso começar a trabalhar.

    Tenho documentos que são armazenados em vários doc. bibliotecas, mas classificado usando uma coluna de classe personalizada (escolha: 1 ou 2. Eu quero usar CQWP para mostrar estes documentos com base na sua classe.
    Eu era capaz de adicionar o CQWP, exportá-lo para SPD, configurar o itemStyle.xls para mostrar fileds personalizada no modo de exibição de lista. no entanto, Eu poderia não implementar com sucesso o que você descreve aqui.

    Estas são as colunas que eu quero mostrar no meu CQWP:

    Tipo de arquivo (para mostrar o ícone)
    Título do arquivo
    Data da última modificada
    Modificado por quem
    Check-Out para
    Verifiquei no Comments

    Atualmente tenho o resultado em um formato de lista. Como faço para mudar isso para um formato de talble.

    Obrigado.

    Santos

    Resposta

Deixar uma resposta

seu endereço de e-mail não será publicado. Campos obrigatórios são marcados *