Visualizzare il contenuto Web Part risultati della Query in una griglia / Tabella

Panoramica e obiettivo

Out of the box, MUSCHIO’ Web Part Query contenuto (DISPONIBILI) i risultati verranno visualizzati in formato elenco, simile ai risultati di ricerca. È anche possibile visualizzare i risultati in formato griglia (vale a dire. Formato di tabella HTML). Formati di griglia sono meglio in alcune circostanze. Viene descritto come ottenere questo effetto in questo articolo.

Scenario business

Ho lavorato con un cliente su un lancio MOSS aziendale. Abbiamo progettato loro tassonomia tale che progetti sono cittadini di prima classe nella gerarchia e hanno il proprio sito di livello superiore. Project Manager mantiene un elenco di singleton di informazioni di riepilogo del progetto, come il titolo, bilancio, Data di completamento prevista, budget residuo e altri campi di tipo di riepilogo. Da "singleton" Cioe ' un elenco SharePoint personalizzato garantito per contenere un solo elemento. Semplicisticamente, sembra che questo:

immagine

L'approccio tecnico è lo stesso come descritto qui (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). Il CQWP utilizza una trasformazione XSL per generare HTML per il browser per eseguire il rendering.

Mi immagino sempre il risultato prima di tuffarsi in XSL perché XSL è un incubo. Ecco il mio risultato desiderato:

immagine

HTML come questo genera quel risultato:

<html>
 <corpo>
 <centro>
 <tabella confine= 1>

<!-- Etichette->
 <TR bgcolor= blu>
 <TD><tipo di carattere Colore= bianco><b>Nome del progetto</b></tipo di carattere></TD>
 <TD allineare= destra><tipo di carattere Colore= bianco><b>Data completa</b></tipo di carattere></TD>
 <TD allineare= destra><tipo di carattere Colore= bianco><b>Bilancio</b></tipo di carattere></TD>
 <TD allineare= destra><tipo di carattere Colore= bianco><b>Spesa effettiva</b></tipo di carattere></TD>
 <TD><tipo di carattere Colore= bianco><b>Stato complessivo</b></tipo di carattere></TD>
 </TR>

<TR>
 <TD>Governando la sala computer.</TD>
 <TD allineare= destra>02/01/08</TD>
 <TD allineare= destra>22,500.00</TD>
 <TD allineare= destra>19,000.00</TD>
 <TD>In corso</TD>
 </TR>

<TR>
 <TD>Server a disposizione per aggiornare SQL</TD>
 <TD allineare= destra>04/01/08</TD>
 <TD allineare= destra>7,500.00</TD>
 <TD allineare= destra>0.00</TD>
 <TD>Pianificato</TD>
 </TR>

</tabella>
 </centro>
 </corpo>
</html>

Approccio

Attenersi alla seguente procedura per creare la griglia:

  1. Identificare i componenti della griglia (righe e colonne).
  2. Definire e creare le colonne del sito necessario.
  3. Creare siti sub per i progetti e le liste di singleton.
  4. Aggiungere il CQWP in una pagina web e configurarlo per cercare gli elenchi.
  5. Modificare XML del CQWP per raccogliere le colonne aggiuntive.
  6. Modificare il XSL per generare una tabella.

Ho intenzione di concentrarsi sul numero sei. Numeri da uno al quattro sono straight-forward e qualcosa che qualsiasi utente CQWP ha già fatto. Numero cinque è stato ben documentato da altri tra cui esaustivo articolo pieno carico schermata da MSDN qui (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) blog di Heather Solomon e qui (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Dadi e bulloni

Avviare e implementare i passaggi da uno a cinque, secondo la documentazione MSDN e articolo di Heather Solomon.

A questo punto, hai aggiunto il tuo CQWP alla pagina e hai il tuo <CommonViewFields> configurato come necessario.

Seguendo la procedura usuale, Ottenere questi risultati intermedi:

1. Creare un tipo di contenuto, un elenco personalizzato templatized per quel tipo di contenuto e due siti. Ecco il tipo di contenuto:

immagine

Ecco la struttura del sito:

immagine

2. Aggiungere il CQWP dopo la creazione di liste di riepilogo del progetto mio progetto secondari e singleton:

immagine

3. Aggiungere tutte le informazioni aggiuntive che voglio tramite il <CommonViewFields>:

        <Proprietà nome="CommonViewFields" tipo="stringa">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</Proprietà>

Si noti che ho dovuto tenere tutti i campi di proprietà su una linea o non avrebbero funzionato (CQWP vuoi dirmi che la query non restituita elementi).

4. A questo punto, Siamo pronti a muoversi oltre l'articolo di MSDN e flip su sopra all'articolo di Heather Solomon. Seguire i suoi passi di partenza nei pressi del passo #5 per creare un personalizzato / unghosted versione di ItemStyle.xsl. Seguo i consigli di Heather, alto attraverso il passo 11 e ottenere questi risultati intermedi:

4.1: Nome mio modello XSL come segue:

<xsl:nome template = "Grid" match = "riga[@Style = 'Grid']" modalità = "itemstyle">

Anche leggermente modificare lei suggerito <xsl:for each …> con l'aggiunta di un <br /> Tag per fornire un elenco più pulito:

    <xsl:for each selezionare="@*">
      P:<xsl:valore di selezionare="nome()" /><br/>
    </xsl:for each>

4.2: Modificare la web part, Vai a comparsa e selezionare my Grid"" stile:

immagine

Applicare la modifica ed ecco il risultato:

immagine

Da quanto sopra possiamo vedere che i campi che vogliamo (Nome del progetto, spese, status, ecc) sono disponibili per noi da utilizzare quando emettiamo il codice HTML. Non solo che, ma vediamo i nomi con cui ci dobbiamo fanno riferimento tali colonne in XSL. Per esempio, riferimento lo stato del progetto come "Project_x005F_x0020_Name".

A questo punto, Partiamo dal blog di Heather e dalle spalle di questi giganti, Aggiungo il mio po '.

ContentQueryMain.xsl

NOTA: Quando si apportano modifiche a ContentQueryMain.xsl così come ItemStyle.xsl, è necessario controllare che i file di nuovo in prima di vedere l'effetto delle modifiche.

Fini della griglia-making, MOSS utilizza due file XSL diversi per produrre i risultati che vediamo da un CQWP. Per generare il precedente bit di output, Abbiamo modificato ItemStyle.xsl. MOSS utilizza in realtà un altro file XSL, ContentQueryMain.xsl a in combinazione con ItemStyle.xsl per generare il codice HTML. Come suggerisce il nome, ContentQueryMain.xsl è il principale"" XSL che controlla il flusso complessivo di traduzione. Scorre tutti gli elementi trovati e li passa uno per modelli in ItemStyle.xsl. Verrà modificata ItemStyle.xsl per generare all'aperto <tabella> Tag prima di emettere la prima riga di dati e la chiusura <tabella> Tag dopo l'ultima riga di emissione. Per eseguire questa operazione, ContentQueryMain.xsl è modificato per passare due parametri alla nostra griglia"" modello in ItemStyle.xsl, "ultima fila" e "riga corrente". ItemStyle.xsl utilizza questi per generare in modo condizionale i tag necessari.

Utilizzando la tecnica di Heather Solomon, Siamo individuare ContentQueryMain.xsl. Si trova nello stesso luogo come ItemStyle.xsl. Questa schermata dovrebbe aiutare:

immagine

Abbiamo bisogno di apportare le seguenti modifiche:

  • Modificare un modello xsl, "CallItemTemplate" che in realtà richiama il nostro modello di griglia in ItemStyle.xsl. Passeremo due parametri al modello Grid in modo che avrà i dati che necessari per generare in modo condizionale di apertura e chiusura <tabella> Tag.
  • Modificare un altro po ' di ContentQueryMain.xsl che chiama la "CallItemTemplate" far passare un "LastRow" parametro quindi che LastRow potranno essere comunicati al nostro modello di griglia.

Individuare il modello denominato "OuterTemplate.CallItemTemplate" identificato dalla stringa:

  <xsl:modello nome="OuterTemplate.CallItemTemplate">

Sostituire l'intero modello come segue:

  <xsl:modello nome="OuterTemplate.CallItemTemplate">
    <xsl:param nome="CurPosition" />

    <!--
      Aggiungere il "LastRow" parametro.
      Usiamo solo quando l'elemento style pass in è «Griglia».
    -->
    <xsl:param nome="LastRow" />

    <xsl:scegliere>
      <xsl:Quando test="@Style = 'NewsRollUpItem'">
        <xsl:apply-templates selezionare="." modalità="ItemStyle">
          <xsl:con param nome="EditMode" selezionare="$cbq_iseditmode" />
        </xsl:apply-templates>
      </xsl:Quando>
      <xsl:Quando test="@Style = 'NewsBigItem'">
        <xsl:apply-templates selezionare="." modalità="ItemStyle">
          <xsl:con param nome="CurPos" selezionare="$CurPosition" />
        </xsl:apply-templates>
      </xsl:Quando>
      <xsl:Quando test="@Style = 'NewsCategoryItem'">
        <xsl:apply-templates selezionare="." modalità="ItemStyle">
          <xsl:con param nome="CurPos" selezionare="$CurPosition" />
        </xsl:apply-templates>
      </xsl:Quando>

      <!--
              Posizione corrente e lastrow passare il modello di griglia itemstyle.xsl.
              ItemStyle.xsl che utilizzerà per emettere l'apertura e la chiusura <tabella> Tag.
      -->
      <xsl:Quando test="@Style = 'Griglia'">
        <xsl:apply-templates selezionare="." modalità="ItemStyle">
          <xsl:con param nome="CurPos" selezionare="$CurPosition" />
          <xsl:con param nome="Ultima" selezionare="$LastRow" />
        </xsl:apply-templates>
      </xsl:Quando>

      <xsl:in caso contrario>
        <xsl:apply-templates selezionare="." modalità="ItemStyle">
        </xsl:apply-templates>
      </xsl:in caso contrario>
    </xsl:scegliere>
  </xsl:modello>

Commenti descrivono lo scopo delle modifiche.

Naturalmente, il OuterTemplate.CallItemTemplate"" Se viene chiamato da un altro modello. Individuare tale modello di ricerca per questa stringa di testo:

<xsl:modello nome="OuterTemplate.Body">

Scorrere le istruzioni in OuterTemplate.Body e inserire il parametro LastRow come segue (mostrato come un commento in corsivo):

<xsl:modello di chiamata nome="OuterTemplate.CallItemTemplate">
  <xsl:con param nome="CurPosition" selezionare="$CurPosition" />
  <!-- Inserire il parametro LastRow. -->
  <xsl:con param nome="LastRow" selezionare="$LastRow"/>
</xsl:modello di chiamata>

Dopo tutto questo, finalmente abbiamo impostate correttamente in modo che la nostra ItemStyle.xsl può emettere cose <tabella> Tag al posto giusto.

ItemStyle.Xsl

NOTA: Ancora una volta, Dopo aver apportato eventuali modifiche, in modo che si vede l'effetto di tali modifiche il check-in ItemStyle.xsl.

Abbiamo due compiti qui:

  • Sostituire l'intero modello di griglia. È possibile copiare/incollare da sotto.
  • Aggiungere alcuni mumbo jumbo non rientra nella definizione di modello che consente di "formatcurrency" modello a lavorare. (Si può dire che ho una tenue maniglia su XSL).

Primo, nella parte superiore della ItemStyle.xsl, aggiungere questa riga:

  <!-- Alcuni mumbo jumbo che ci permette di visualizzare gli Stati Uniti. valuta. -->
  <xsl:formato decimale nome="personale" cifre="D" />

  <xsl:modello nome="Predefinito" match="*" modalità="ItemStyle">

Si noti che aggiunto direttamente prima del <xsl:nome template = "Default" …> definizione.

Successivo, Torna al nostro modello di griglia. Sostituire l'intero modello di griglia con il codice riportato di seguito. È accuratamente commentato, ma non esitate a scrivermi o lasciare commenti sul mio blog, se avete domande.

  <xsl:modello nome="Griglia" match="Riga[@Style = 'Griglia']" modalità="ItemStyle">

    <!--
      ContentMain.xsl passa CurPos e ultimo.
      Usiamo questi condizionalmente emettere all'aperto e chiusura <tabella> Tag.
    -->
    <xsl:param nome="CurPos" />
    <xsl:param nome="Ultima" />

    <!-- Le seguenti variabili sono state modificate dalla ItemStyle.xsl standard -->
    <xsl:variabile nome="SafeImageUrl">
      <xsl:modello di chiamata nome="OuterTemplate.GetSafeStaticUrl">
        <xsl:con param nome="UrlColumnName" selezionare="'ImageUrl'"/>
      </xsl:modello di chiamata>
    </xsl:variabile>
    <xsl:variabile nome="SafeLinkUrl">
      <xsl:modello di chiamata nome="OuterTemplate.GetSafeLink">
        <xsl:con param nome="UrlColumnName" selezionare="'LinkUrl'"/>
      </xsl:modello di chiamata>
    </xsl:variabile>
    <xsl:variabile nome="DisplayTitle">
      <xsl:modello di chiamata nome="OuterTemplate.GetTitle">
        <xsl:con param nome="Titolo" selezionare="@Title"/>
        <xsl:con param nome="UrlColumnName" selezionare="'LinkUrl'"/>
      </xsl:modello di chiamata>
    </xsl:variabile>
    <xsl:variabile nome="LinkTarget">
      <xsl:Se test="@OpenInNewWindow = 'True'" >Blank</xsl:Se>
    </xsl:variabile>

    <!--
      Qui definiamo una variabile, "tableStart".  Questo file contiene il codice HTML che usiamo per definire l'apertura della tabella così come le etichette di colonna.  Si noti che se CurPos = 1, Esso comprende il codice HTML in un tag CDATA.
      In caso contrario, sarà vuota.

      Il valore di tableStart viene emesso ogni volta ItemStyle è chiamata via ContentQueryMain.xsl.
    -->
    <xsl:variabile nome="tableStart">
      <xsl:Se test="$CurPos = 1">
        <![CDATA[
        <bordo della tabella = 1>
          <TR bgcolor = "blue">
            <TD><colore del carattere = "white"><b>Nome del progetto</b></tipo di carattere></TD>
            <TD align = "right"><colore del carattere = "white"><b>Data completa</b></tipo di carattere></TD>
            <TD align = "right"><colore del carattere = "white"><b>Bilancio</b></tipo di carattere></TD>
            <TD align = "right"><colore del carattere = "white"><b>Spesa effettiva</b></tipo di carattere></TD>
            <TD><colore del carattere = "white"><b>Stato complessivo</b></tipo di carattere></TD>
          </TR>
        ]]>
      </xsl:Se>
    </xsl:variabile>

    <!--
      Un'altra variabile, tableEnd definisce semplicemente la chiusura tag di tabella.

      Come con tableStart, è sempre emesso.  Ecco perché il relativo valore è assegnato in modo condizionale basata su se siamo stati passati l'ultima riga di ContentQueryMain.xsl.
    -->
    <xsl:variabile nome="tableEnd">
      <xsl:Se test="$CurPos = $Last">
        <![CDATA[ </tabella> ]]>
      </xsl:Se>
    </xsl:variabile>

    <!--
      Emettono sempre il contenuto di tableStart.  Se questo non è la prima riga che passava a noi ContentQueryMain.xsl, quindi sappiamo che il suo valore sarà vuoto.

      Disabilitare l'uscita escape perché quando tableStart non vuoto, Esso comprende HTML effettivo che vogliamo sottoporre a rendering mediante il browser.  Se non diciamo il parser XSL per disabilitare output fuga, verrà generato roba come"&lt;tabella&gt;" invece di"<tabella>".
    -->
    <xsl:valore di selezionare="$tableStart" disable-output-escaping=""/>


    <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:valore di selezionare="@Project_x005F_x0020_Name"/>
      </TD>

      <TD allineare="destra">
        <xsl:valore di selezionare="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD allineare="destra">
        <xsl:modello di chiamata nome="FormatCurrency">
          <xsl:con param nome="valore" 
selezionare="@Project_x005F_x0020_Budget"></xsl:con param> </xsl:modello di chiamata> </TD> <TD allineare="destra"> <xsl:modello di chiamata nome="FormatCurrency"> <xsl:con param nome="valore" selezionare="@Project_x005F_x0020_Expenses">
</xsl:con param> </xsl:modello di chiamata> </TD> <TD> <xsl:valore di selezionare="@Project_x005F_x0020_Status"/> </TD> <!-- Tutte le condizioni seguenti è commentata per chiarire le cose. Tuttavia, riportarlo indietro e roba in un <TD> per vedere il suo effetto. --> <!-- <div id = "linkitem" classe = "item"> <xsl:Se prova = "string-length($SafeImageUrl) != 0"> <div class = "immagine-zona-sinistra"> <un href = "{$SafeLinkUrl}" destinazione = "{$LinkTarget}"> <img class = "immagine-larghezza fissa" src = "{$SafeImageUrl}"
ALT = "{@ImageUrlAltText}"/> </un> </div> </xsl:Se> <div class = "link-item"> <xsl:modello di chiamata
Name="OuterTemplate.CallPresenceStatusIconTemplate"/> <un href = "{$SafeLinkUrl}"
destinazione = "{$LinkTarget}" title = "{@LinkToolTip}"> <xsl:value-of select = "$DisxslyTitle" /> </un> <div class = "descrizione"> <xsl:valore di select="@Description" /> </div> </div> </div>
--> </TR> <!-- Emettono la chiusura tag di tabella. Se non siamo in ultima fila, Questo sarà vuoto. --> <xsl:valore di selezionare="$tableEnd" disable-output-escaping=""/> </xsl:modello> <xsl:modello nome="FormatCurrency"> <xsl:param nome="valore" selezionare="0" /> <xsl:valore di selezionare='formato numero($valore, "$DDD,DDD,DDD.DD", "personale")' /> </xsl:modello>

22 pensieri su "Visualizzare il contenuto Web Part risultati della Query in una griglia / Tabella

  1. Andreas

    Aah… e ' stato perché il mio stile di elenco un nome diverso e non realizzare il ContentQueryMain.xsl verifica per lo "stile":

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

    Con quello rinominato ha funzionato. 🙂

    Risposta
  2. Andreas

    Ha quasi funzionato per me: Gestire per l'output il </tabella> tag di fine correttamente, ma manca il tag iniziale. Sembra che il test = "$CurPos = 1" non restituire true. Ma perché?

    Risposta
  3. Anand singh Rawat

    Grande Post. Paolo ho fatto tutte le cose di cui sopra. Ho una query, come posso ottenere la somma di "totale spese effettive" o la somma del valore delle due colonne.

    Risposta
  4. Lisa

    Hai fatto qualche lavoro con la creazione di file xsl ContentQueryMain e ItemStyle personalizzati? Il motivo che mi chiedo è che non vogliono preoccuparsi di mio stili personalizzati vengano sovrascritte con eventuali patch o aggiornamenti. Avete esempi? Ho provato a fare una copia identica della ContentQueryMain.xsl e caricare quella nuova copia personalizzata alla libreria di stile. Quando si inserisce un riferimento a questo file xsl nella proprietà MainXslLink di WebPart, Ottengo 401 non autorizzato. Il file xsl personalizzato è una versione pubblicata e ognuno di noi ha accesso in lettura ad esso.

    Risposta
  5. Greg Sheridan

    Ciao, Questo è stato un distacco veramente utile. Ce l'ho tutti lavoro, e cambia anche implementato Mike Brown così gruppi it
    i risultati all'interno della tabella da qualunque cosa scegliere come gruppo di parametro nella proprietà di CQWB.
    Ho fatto il titolo di un link anche, così funziona bene. Ho ancora un problema, anche se. Io sto raggruppando i risultati dal nome del sito. All'interno della tabella, li raggruppa ben, e sembra grande, ma è ancora stampa fuori tutto il gruppo
    nomi(nel mio caso i nomi dei siti) sopra la tabella. Qualcuno sa come sbarazzarsi di questi?
    Grazie,
    Greg

    Risposta
  6. Senza nome

    Bell'articolo. Sono riuscito a dare il mio tavolo l'aspetto degli elenchi Sharepoint predefinita analizzando il codice sorgente dell'elenco. Ecco i principali blocchi HTML necessari per montare in ItemStyle:

    <TABELLA larghezza = 100%" classe = "ms-listviewtable" border = 0 cellspacing = 0 cellpadding = 1 dir = "None">

    <!–INTESTAZIONE–>
    <Classe TR = "ms-viewheadertr" VALIGN = TOP>
    <Ambito nowrap TH = "col" classe = "ms-vh2"><div style = "width:100%;posizione:relativa;sinistra:0;In alto:0;">
    <Stile tabella = "larghezza:100%;" CtxNum = "1" Height = "100%" CellSpacing = 1 cellpadding = 0 class = "ms-unselectedtitle">
    <TR>
    <Larghezza TD = 100%" Classe = "ms-vb" NoWrap>
    Texte du titre ici

    </TD>
    <TD style = "position:assoluta;">
    </TD>
    </TR>
    </TABELLA></div>
    </TH>

    <!–Ripetere per tutte le celle di intestazione–>
    </TR>

    <!– Dati della tabella –>
    <Classe TR = "">
    <!–Colonna di dati, utilizzare il codice di Paul per quella prima con il collegamento ipertestuale –>
    <TD Class = "ms-vb2">Dati qui</TD>

    <!–Colonna vuota–>
    <TD Class = "ms-vb2">
    <span dir = None></arco><
    /TD>

    <!–Colonna Data–>
    <TD Class = "ms-vb2">
    <NOBR>11/12/2008</NOBR>
    </TD>
    </TR>

    <!–***Riga alternativo – Utilizzare una nuova variabile XSL che inserirà la classe alternativa basata sulla riga corrente modulo 2–>
    <Classe TR = "ms-alternato">

    </TR>
    </TABELLA>

    Risposta
  7. Mike Brown
    Zoltan,
    Stavo lavorando sulla stessa questione come si. Volevo tutti i miei oggetti visualizzati in modo raggruppato, piuttosto che appena un lits. Ecco come ho raggiunto.
    ContentQueryMain.xsl
    <xsl:Quando test="@Style='Grid'">
    <xsl:apply-templates select = "." modalità = "itemstyle">
    <xsl:con param name = "CurPos" Select = "$CurPosition" />
    <xsl:con param name = "ultima" Select = "$LastRow" />
    <!–aggiungere questa nuova sezione per passare il parametro che indica un nuovo gruppo ha cominciato–>
    <xsl:con param name = "StartNewGroup" Select="@__begingroup" />
    </xsl:apply-templates>
    </xsl:Quando>
    ItemStyle.xsl
    Aggiungere il parametro
    <xsl:param name = "StartNewGroup" />
    Aggiungi questo testo come la prima riga di dati
    <xsl:scegliere>
    <xsl:Quando la prova = "$StartNewGroup = 'True'">
    <TR>
    <TD >
    <xsl:name="OuterTemplate.GetGroupName modello di chiamata">
    <xsl:con param name = "GroupName" Select="@*[nome()= $Group]"/>
    <xsl:con param name = "GroupType" Select = "$GroupType" />
    </xsl:modello di chiamata>
    </TD>
    </TR>
    </xsl:Quando>
    <xsl:in caso contrario>
    </xsl:in caso contrario>
    </xsl:scegliere>
    Questo dovrebbe prendersi cura del vostro problema di raggruppamento nella vostra griglia. Ogni gruppo inizierà ora con una nuova riga che indica il nome del gruppo. Nella mia soluzione ho effettivamente aggiunto uno spazio vuoto <TD /> i dati per il rientro e così pure il raggruppamento spiccava molto meglio.
    Sito1
    datacolumn1 datacolumn2 datacolumn3 ecc

    datacolumn1 datacolumn2 datacolumn3 ecc
    Sito2
    datacolumn1 datacolumn2 datacolumn3 ecc
    Site3

    datacolumn1 datacolumn2 datacolumn3 ecc

    datacolumn1 datacolumn2 datacolumn3 ecc
    ecc.
    Risposta
  8. Zoltan
    Ciao Paolo,
    Grazie per il post, sono riuscito a organizzare i miei risultati della query in una griglia, che è molto utile. Tuttavia, Dovrei andare ulteriormente e i miei risultati basati su siti di gruppo. In questo momento, i nomi dei siti sono elencati per primi, e poi la vi è solo una griglia grande raccolta di tutte le righe da siti diversi. Qualcosa di simile:
    Nome sito1
    Sito2 nome
    Dati nella griglia per tutti i siti
    Tutte le idee su che cosa devo modificare per poter ottenere i miei dati come segue:
    Nome sito1
    Dati nella griglia per sito1
    Sito2 nome
    Dati nella griglia per sito2
    Grazie in anticipo,
    Zoltan
    Risposta
  9. Pierre Joubert
    Fantastico Post, risolto il mio problema che ho avuto.
    Il mio unico problema è la visualizzazione del campo AssignedTo, Configurarlo con l'utente"" tipo di campo e il controllo webpart importate quindi viene visualizzato il seguente messaggio di errore:
    "C'è stato un errore durante il recupero dei dati da visualizzare in questa Web Part."
    Ho provato utilizzando tutti i tipi di campo possibile., con niente altro che "l'utente" non viene visualizzato l'errore, ma non visualizza nulla nel campo. Quindi sto assumendo il tipo di campo utente è corretto, quindi devo essere manca un'impostazione da qualche parte.
    Tutte le idee su questo?
    Per quanto riguarda
    Pierre
    Risposta
  10. Charftong
    Grande Post!!! Molto molto utile.
    Domanda veloce, hai fatto alcun lavoro sulla visualizzazione del campo AssignedTo o ModifiedBy con presenza? Per qualche motivo, ogni volta che provo a dipslay il campo assegnato alla CQWP, venga sempre visualizzato con un esempio "203;#Charf Tong". Non riesco a trovare un modo per aggirare questo.
    Risposta
  11. Jennifer Davis
    Paul
    Grande articolo, Grazie. Sto facendo qualcosa di molto simile, ma per visualizzare un collegamento al sito del progetto, piuttosto che l'elemento nell'elenco. Per esempio, Abbiamo 25 siti di progetto di livello superiore e ciascuno contengono un elenco con tipi di contenuto. Queste sono il nome del progetto, Divisione, Descrizione. Vorrei utilizzare la web part query contenuto a tirare questi dati e sono riusciti ad eccezione del fatto che per impostazione predefinita l'URL mi porta alla voce voce nell'elenco e ho davvero bisogno di prendere me al sito del progetto. Potete darmi qualche consiglio?
    Grazie
    Jen
    Risposta
  12. Paul Galvin
    Kieren,
    Sempre utilizzare visual studio per modificare il codice XSL. Esso fornisce la codifica a colori e ha anche qualche supporto intellisense buona.
    –Paul
    Risposta
  13. Kieran ha scritto:

    Ciao Paolo,

    Quando si lavora con la web part query xml/xsl e contenuto, Hai trovato tutti buoni modi per formattare il tuo xslt? Cercando di apportare modifiche e prova il design si sta rivelando un dolore giusto nell'un * * solo utilizzando un editor di testo…

    Tutti i migliori

    Risposta
  14. Michael Dipay
    Per quanto riguarda il problema stavo avendo ultima volta dove non Visualizza le immagini dalla visualizzazione griglia ma invece viene visualizzato il testo (https://myweb.com/Marketing/images/icn-order.gif,). Riesco a risolverlo con l'aiuto di SharePoint Designer creando la visualizzazione personalizzata e selezionando le colonne personalizzate che si desidero visualizzare. Ho scoperto che il tipo di colonna di immagini vengono visualizzate come URL(virgola) (e. g. https://myweb.com/Marketing/images/icn-order.gif,). Il formato attuale è testo, quindi devo cambiare immagine da xsl comuni:valore di attività-> Formato come immagine. Questa modifica la visualizzazione di immagini personalizzate che ho voluto mostrare. Ho copiato il codice per visualizzare l'immagine ( <img border ="0" src = "{sottostringa-prima(@IcnOrder, ‘, ‘)}" /> ) E nel file ItemStyle.xsl che devo cambiare il @PICTURECOLUMNNAME al codice <img border ="0" src = "{sottostringa-prima(@IcnOrder, ‘, ‘)}" /> . Quindi salvare il. Ora i miei risultati di griglia tabella per mostrare il testo così come l'immagine personalizzata tipo colonne.
    Risposta
  15. Helen
    Ciao Paolo,
    Grazie per l'articolo grande!
    Lei ha citato la formattazione condizionale – "Si può anche mettere in formattazione condizionale, ad esempio la visualizzazione di progetti che hanno superato il loro bilancio in rosso." Caso per avere un esempio di codice per questo?
    Grazie ancora!
    Helen
    Risposta
  16. Michael Dipay
    Ciao Paolo,
    Era un grande articolo ed era in grado di generare gli stessi risultati come previsto. Ho un requisito per mostrare un'immagine della griglia come una delle sue colonne. Non è la visualizzazione dell'immagine sulla griglia di partenza, ma invece viene visualizzato l'url dell'immagine con un (,) virgola alla fine.
    (e. g. https://myweb.com/Marketing/images/icn-order.gif, )
    Dovrei usare immagini o foto nel campo tipo di CommonViewFields? (e. g. InternalColumnName, Immagine)
    Grazie,
    Mike
    Risposta
  17. Saji Ijiyemi

    Il tuo post è esattamente quello che stavo cercando. Tuttavia, Non riesco a farlo funzionare.

    Ho documenti memorizzati in vari doc. le librerie ma classificati utilizzando una colonna di classe personalizzata (scelta: 1 o 2. Voglio usare CQWP per mostrare questi documenti in base alla loro classe.
    Sono stato in grado di aggiungere il CQWP, esportarlo in SPD, configurare il itemStyle.xls per mostrare i campi personalizzati nella visualizzazione elenco. Tuttavia, Non riuscivo a implementare con successo ciò che si descrive qui.

    Queste sono le colonne che vi voglio mostrare nel mio CQWP:

    Tipo di file (per visualizzare l'icona)
    Titolo del file
    Data ultima modificata
    Modificato da chi
    Check-Out per
    Controllato nei commenti

    Al momento ho il risultato in formato elenco. Come faccio a cambiarlo in un formato di talble.

    Grazie.

    Simonelli

    Risposta

Lasciare una risposta a Lee Goergen cancella risposta

L'indirizzo email non verrà pubblicato. i campi richiesti sono contrassegnati *