Afişare conţinut interogare Web parte rezultatele într-o grilă / Tabel

Privire de ansamblu şi obiectivul

Afară de la cutie, MOSS’ Conţinut parte de interogare Web (CQWP) afişează rezultatele sale într-un format listă, similar cu rezultatele căutării. De asemenea, este posibil să afişaţi rezultatele în format grilă (adică. Format de tabel HTML). Grila formate sunt mai bine în anumite circumstanţe. Descrie modul de a realiza acest efect în acest articol.

Scenariu de afaceri

Am lucrat cu un client pe un rollout de muşchi de nivel de întreprindere. Ne-am proiectat taxonomie lor, astfel încât proiectele sunt cetăţeni de clasa întâi în ierarhia şi au propriile lor site-ul de nivel superior. Managerilor de proiect să menţină o listă de singleton de proiect informaţii rezumative, ca titlu, buget, data preconizată de finalizare, restul bugetul şi alte domenii de tip de rezumare. De "singleton" Adica o personalizate lista SharePoint garantat să conțină doar un singur articol. Simplist, se pare ca asta:

imagine

Abordare tehnică este la fel de mult după cum este descris aici (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP foloseşte o transformare XSL să emită HTML pentru browser-ul sa redea.

Am envision întotdeauna rezultatul înainte de scufundare în XSL pentru XSL este un coşmar. Aici este meu rezultatul dorit:

imagine

HTML ca aceasta generează acest rezultat:

<HTML>
 <corpul>
 <Centrul>
 <tabel frontieră= 1>

<!-- Etichete-->
 <TR bgcolor= albastru>
 <TD><font culoare= alb><b>Numele proiectului</b></font></TD>
 <TD Aliniaţi= dreapta><font culoare= alb><b>Data completă</b></font></TD>
 <TD Aliniaţi= dreapta><font culoare= alb><b>Buget</b></font></TD>
 <TD Aliniaţi= dreapta><font culoare= alb><b>Cheltuieli actuale</b></font></TD>
 <TD><font culoare= alb><b>Starea generală</b></font></TD>
 </TR>

<TR>
 <TD>Re-sârmă sala de calculatoare.</TD>
 <TD Aliniaţi= dreapta>02/01/08</TD>
 <TD Aliniaţi= dreapta>22,500.00</TD>
 <TD Aliniaţi= dreapta>19,000.00</TD>
 <TD>În curs de desfăşurare</TD>
 </TR>

<TR>
 <TD>Furnizarea de servere pentru SQL Upgrade</TD>
 <TD Aliniaţi= dreapta>04/01/08</TD>
 <TD Aliniaţi= dreapta>7,500.00</TD>
 <TD Aliniaţi= dreapta>0.00</TD>
 <TD>Planificate</TD>
 </TR>

</tabel>
 </Centrul>
 </corpul>
</HTML>

Abordare

Urmaţi aceşti paşi pentru a crea grila:

  1. Identifica componentele de reţea (rânduri/coloane).
  2. Defini şi de a crea coloane de site-ul necesar.
  3. Creaţi site-uri sub pentru proiecte şi liste de singleton.
  4. Adauga CQWP la o pagină web şi configuraţi-l pentru a căuta listele tale.
  5. Modifica CQWP XML să adune coloane suplimentare.
  6. Modifica XSL pentru a genera un tabel.

Am de gând să se concentreze asupra numărului şase. Numere unul prin patru sunt drept-înainte, şi ceva care orice utilizator CQWP deja a făcut. Numărul cinci a fost bine documentate de alţii, inclusiv acest articol exhaustivă de ecran-shot încărcat la MSDN aici (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) şi Heather Solomon blog aici (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Nuci şi bolţuri

Începe şi implementa paşi unul prin cinci după documentaţia MSDN şi Heather Solomon articolul.

La acest punct, aţi adăugat ta CQWP la pagina şi aveţi dumneavoastră <CommonViewFields> configurate după cum este necesar.

Urmând paşii de obicei, I a lua aceste rezultate intermediare:

1. Crea un tip de conținut, un șablon particularizat lista pentru acel tip de conținut și două site-uri. Aici este tipul de conținut:

imagine

Aici este structura site-ului:

imagine

2. Adauga CQWP după crearea meu proiect subsite-uri și singleton liste rezumatul proiectului:

imagine

3. Adauga toate informaţiile suplimentare vreau prin <CommonViewFields>:

        <proprietate nume="CommonViewFields" tip="şir">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</proprietate>

Reţineţi că am avut de a păstra toate câmpurile de proprietate pe o linie sau o nu ar funcţiona (CQWP mi-ar spune că interogarea returnat niciun element).

4. La acest punct, Suntem gata pentru a trece dincolo de articolul MSDN şi flip pe peste articolul lui Heather Solomon. Urmaţi paşii ei incepand de lângă pas #5 pentru a crea o personalizate / unghosted versiune de ItemStyle.xsl. Am urmat sfatul lui Heather, până prin pas 11 şi a obţine aceste rezultate intermediare:

4.1: Nume şablon mea XSL, după cum urmează:

<XSL:Nume şablon = "grilă" meci = "Row[@Style = "Grila"]" modul = "itemstyle">

De asemenea, uşor modifica ei sugerat <XSL:pentru fiecare …> prin adăugarea de o <br /> Tag-ul pentru a oferi o listă mai curat:

    <XSL:pentru fiecare Selectaţi="@*">
      P:<XSL:valoarea de Selectaţi="nume()" /><br/>
    </XSL:pentru fiecare>

4.2: Modifică partea web, Du-te la aspect şi selectaţi meu "grilă" stil:

imagine

Aplicaţi schimbare şi aici este rezultatul:

imagine

Putem vedea din cele de mai sus că domeniile vrem (Numele proiectului, cheltuieli, statutul, etc) sunt disponibile pentru noi de a folosi atunci când am emite HTML. Nu numai că, dar vom vedea numele prin care noi trebuie să referinţă aceste coloane în XSL. De exemplu, am de referinţă proiectul statutului ca "Project_x005F_x0020_Name".

La acest punct, plecam de la Heather pe blog si de la umeri de giganţi aceste, Adăuga propria mea pic.

ContentQueryMain.xsl

NOTĂ: Când a face modificări la atât ContentQueryMain.xsl, cât şi ItemStyle.xsl, trebuie să verificaţi aceste fişiere înapoi în înainte de a vedea efectul de modificări.

Scopuri grila de luare a, MOSS utilizează două fişiere diferite XSL pentru a produce rezultate vom vedea de la o CQWP. Pentru a genera anterioare de biţi de ieşire, am modificat ItemStyle.xsl. MUŞCHI de fapt foloseste un alt fișier XSL, ContentQueryMain.xsl sa în colaborare cu ItemStyle.xsl pentru a genera sale HTML. După cum sugerează şi numele, ContentQueryMain.xsl este principala"" XSL care controleaza fluxul de ansamblu de traducere. Acesta reiterează prin toate elementele găsit şi trece-le unul câte unul la template-uri în ItemStyle.xsl. Ne vom modifica ItemStyle.xsl pentru a genera deschis <tabel> Tag-ul înainte de a emite primul rând de date şi închidere <tabel> Tag-ul după emit ultimul rând. Pentru a realiza acest lucru, ContentQueryMain.xsl este modificat pentru a trece doi parametri noastre "grilă" şablon în ItemStyle.xsl, "ultimul rând" şi "rândul curent". ItemStyle.xsl foloseşte să emită condiţional Tag-uri necesare.

Folosind tehnica de Heather Solomon, ne găsiţi ContentQueryMain.xsl. Acesta este situat în acelaşi loc ca ItemStyle.xsl. Acest ecran shot ar trebui să ajute:

imagine

Trebuie să efectuaţi următoarele modificări:

  • Modificarea unui șablon xsl, "CallItemTemplate" fapt care invocă noastre şablon de grilă în ItemStyle.xsl. Vom trece doi parametri în şablonul grila astfel încât acesta va avea datele are nevoie pentru a genera condiţional deschidere şi închidere <tabel> Tag-uri.
  • Modifica un pic de ContentQueryMain.xsl care necesită "CallItemTemplate" pentru a trece un LastRow"" parametru aşa că LastRow poate fi trecut pe la noastre şablon de grilă.

Găsiţi şablonul denumit "OuterTemplate.CallItemTemplate" identificate de şir:

  <XSL:şablon nume="OuterTemplate.CallItemTemplate">

Înlocui șablonul întreg după cum urmează:

  <XSL:şablon nume="OuterTemplate.CallItemTemplate">
    <XSL:Param nume="CurPosition" />

    <!--
      Adauga "LastRow" parametru.
      Noi folosim doar atunci când elementul stil trece în "Grilă".
    -->
    <XSL:Param nume="LastRow" />

    <XSL:alege>
      <XSL:când test="@Style = 'NewsRollUpItem'">
        <XSL:aplica-template-uri Selectaţi="." modul de="itemstyle">
          <XSL:cu-param nume="EditMode" Selectaţi="$cbq_iseditmode" />
        </XSL:aplica-template-uri>
      </XSL:când>
      <XSL:când test="@Style = 'NewsBigItem'">
        <XSL:aplica-template-uri Selectaţi="." modul de="itemstyle">
          <XSL:cu-param nume="CurPos" Selectaţi="$CurPosition" />
        </XSL:aplica-template-uri>
      </XSL:când>
      <XSL:când test="@Style = 'NewsCategoryItem'">
        <XSL:aplica-template-uri Selectaţi="." modul de="itemstyle">
          <XSL:cu-param nume="CurPos" Selectaţi="$CurPosition" />
        </XSL:aplica-template-uri>
      </XSL:când>

      <!--
              Trece poziţia curentă şi lastrow la grila itemstyle.xsl şablon.
              ItemStyle.xsl care va folosi pentru a emite open şi închidere <tabel> Tag-uri.
      -->
      <XSL:când test="@Style = "Grila"">
        <XSL:aplica-template-uri Selectaţi="." modul de="itemstyle">
          <XSL:cu-param nume="CurPos" Selectaţi="$CurPosition" />
          <XSL:cu-param nume="Ultima" Selectaţi="$LastRow" />
        </XSL:aplica-template-uri>
      </XSL:când>

      <XSL:în caz contrar>
        <XSL:aplica-template-uri Selectaţi="." modul de="itemstyle">
        </XSL:aplica-template-uri>
      </XSL:în caz contrar>
    </XSL:alege>
  </XSL:şablon>

Comentarii descrie scopul modificările.

desigur, "OuterTemplate.CallItemTemplate" în sine este numit de la un alt şablon. Găsiţi că şablon de cercetare pentru acest șir text:

<XSL:şablon nume="OuterTemplate.Body">

Parcurgeţi instrucţiunile din OuterTemplate.Body şi inseraţi parametrul LastRow după cum urmează (indicat ca un comentariu în caractere italice):

<XSL:apel-şablon nume="OuterTemplate.CallItemTemplate">
  <XSL:cu-param nume="CurPosition" Selectaţi="$CurPosition" />
  <!-- Inseraţi parametrul LastRow. -->
  <XSL:cu-param nume="LastRow" Selectaţi="$LastRow"/>
</XSL:apel-şablon>

După toate acestea, în cele din urmă am lucruri stabilite în mod corespunzător astfel încât ItemStyle.xsl nostru poate emite <tabel> Tag-uri la locul potrivit.

ItemStyle.Xsl

NOTĂ: Din nou, verifica în ItemStyle.xsl după a face orice modificări, astfel încât veţi vedea efectul modificărilor.

Avem două sarcini aici:

  • Înlocuiţi întreaga grilă şablon. Să puteţi copy/paste de mai jos.
  • Adauga unele jumbo mumbo în afara definiţia şablonului care permite "formatcurrency" şablon de a lucra. (Vă pot spune că am un mâner fragilă pe XSL).

Prima, lângă partea de sus a ItemStyle.xsl, adăugaţi această linie:

  <!-- Unele mumbo jumbo care ne permite să afişaţi SUA. moneda. -->
  <XSL:zecimal-format nume="Personalul" cifre="D" />

  <XSL:şablon nume="În mod implicit" meci="*" modul de="itemstyle">

Reţineţi că am adăugat-o direct înainte <XSL:Nume şablon = "implicit" …> definiţie.

Următoarea, Du-te înapoi la noastre şablon de grilă. Înlocuiţi întreaga grilă şablon cu codul de mai jos. Acesta este foarte bine comentat, dar nu ezitaţi să mi e-mail sau lăsaţi comentarii pe blog-ul meu, dacă aveţi întrebări.

  <XSL:şablon nume="Grilă" meci="Rând[@Style = "Grila"]" modul de="itemstyle">

    <!--
      ContentMain.xsl trece CurPos şi ultimul.
      Vom folosi aceste să emită condiţional open şi închidere <tabel> Tag-uri.
    -->
    <XSL:Param nume="CurPos" />
    <XSL:Param nume="Ultima" />

    <!-- Următoarele variabile sunt nemodificat la ItemStyle.xsl standard -->
    <XSL:variabila nume="SafeImageUrl">
      <XSL:apel-şablon nume="OuterTemplate.GetSafeStaticUrl">
        <XSL:cu-param nume="UrlColumnName" Selectaţi="'ImageUrl'"/>
      </XSL:apel-şablon>
    </XSL:variabila>
    <XSL:variabila nume="SafeLinkUrl">
      <XSL:apel-şablon nume="OuterTemplate.GetSafeLink">
        <XSL:cu-param nume="UrlColumnName" Selectaţi="'LinkUrl'"/>
      </XSL:apel-şablon>
    </XSL:variabila>
    <XSL:variabila nume="DisplayTitle">
      <XSL:apel-şablon nume="OuterTemplate.GetTitle">
        <XSL:cu-param nume="Titlul" Selectaţi="@Title"/>
        <XSL:cu-param nume="UrlColumnName" Selectaţi="'LinkUrl'"/>
      </XSL:apel-şablon>
    </XSL:variabila>
    <XSL:variabila nume="LinkTarget">
      <XSL:Dacă test="@OpenInNewWindow = "True"" >_blank</XSL:Dacă>
    </XSL:variabila>

    <!--
      Aici vom defini o variabila, "tableStart".  Aceasta conţine HTML pe care le folosim pentru a defini deschiderea de masă, precum şi etichete de coloană.  Reţineţi că, dacă CurPos = 1, Acesta include HTML într-o etichetă CDATA.
      În caz contrar, Acesta va fi gol.

      Valoarea tableStart este emisă de fiecare dată când ItemStyle este numit prin intermediul ContentQueryMain.xsl.
    -->
    <XSL:variabila nume="tableStart">
      <XSL:Dacă test="$CurPos = 1">
        <![CDATA[
        <masă de frontieră = 1>
          <TR bgcolor = "albastru">
            <TD><culoare font = "alb"><b>Numele proiectului</b></font></TD>
            <TD alinia = "dreapta"><culoare font = "alb"><b>Data completă</b></font></TD>
            <TD alinia = "dreapta"><culoare font = "alb"><b>Buget</b></font></TD>
            <TD alinia = "dreapta"><culoare font = "alb"><b>Cheltuieli actuale</b></font></TD>
            <TD><culoare font = "alb"><b>Starea generală</b></font></TD>
          </TR>
        ]]>
      </XSL:Dacă>
    </XSL:variabila>

    <!--
      O altă variabilă, tableEnd defineşte pur şi simplu închiderea tag-ul de masă.

      Ca cu tableStart, este întotdeauna emisă.  De aceea, valoarea sa este asociată condiţional pe baza dacă am fost trecut ultimul rând de ContentQueryMain.xsl.
    -->
    <XSL:variabila nume="tableEnd">
      <XSL:Dacă test="$CurPos = $Last">
        <![CDATA[ </tabel> ]]>
      </XSL:Dacă>
    </XSL:variabila>

    <!--
      Întotdeauna emite conţinutul tableStart.  Dacă acest lucru nu este primul rând trecut la noi de ContentQueryMain.xsl, apoi am ştiu valoarea sa va fi necompletat.

      Dezactiva de ieşire evadarea deoarece când tableStart ea nu gol, Acesta include HTML reale, care ne-o dorim a fi prestate de către browser.  Dacă nu spunem XSL parser-ul pentru a dezactiva de ieşire evadarea, Acesta va genera chestii de genul"&lt;tabel&gt;" în loc de"<tabel>".
    -->
    <XSL:valoarea de Selectaţi="$tableStart" Dezactivează-ieşire-evadarea="da"/>


    <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:valoarea de Selectaţi="@Project_x005F_x0020_Name"/>
      </TD>

      <TD Aliniaţi="dreptul de">
        <XSL:valoarea de Selectaţi="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD Aliniaţi="dreptul de">
        <XSL:apel-şablon nume="formatcurrency">
          <XSL:cu-param nume="valoarea" 
Selectaţi="@Project_x005F_x0020_Budget"></XSL:cu-param> </XSL:apel-şablon> </TD> <TD Aliniaţi="dreptul de"> <XSL:apel-şablon nume="formatcurrency"> <XSL:cu-param nume="valoarea" Selectaţi="@Project_x005F_x0020_Expenses">
</XSL:cu-param> </XSL:apel-şablon> </TD> <TD> <XSL:valoarea de Selectaţi="@Project_x005F_x0020_Status"/> </TD> <!-- Următoarele este comentat afară pentru a clarifica lucrurile. Cu toate acestea, aduceţi-l înapoi şi chestii-l într-un <TD> pentru a vedea efectul acesteia. --> <!-- <div id = "linkitem" clasa = "element"> <XSL:Dacă testul = "şir de caractere de lungime($SafeImageUrl) != 0"> <div clasa = "imagine-zona-stânga"> <o href = "{$SafeLinkUrl}" target = "{$LinkTarget}"> <img clasa = "imagine-lăţime fixă" src = "{$SafeImageUrl}"
alt = "{@ImageUrlAltText}"/> </o> </div> </XSL:Dacă> <div clasa = "link-ul-element"> <XSL:apel-şablon
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <o href = "{$SafeLinkUrl}"
target = "{$LinkTarget}" title = "{@LinkToolTip}"> <XSL:valoare-a selecta = "$DispXSLTitle" /> </o> <div clasa = "Descriere"> <XSL:valoare de select="@Description" /> </div> </div> </div>
--> </TR> <!-- Emite închidere tag-ul de masă. Dacă nu suntem pe ultimul rând, Acest lucru va fi necompletat. --> <XSL:valoarea de Selectaţi="$tableEnd" Dezactivează-ieşire-evadarea="da"/> </XSL:şablon> <XSL:şablon nume="formatcurrency"> <XSL:Param nume="valoarea" Selectaţi="0" /> <XSL:valoarea de Selectaţi='format de număr($valoarea, "$DDD,DDD,DDD.DD", "personal")' /> </XSL:şablon>

22 gânduri pe "Afişare conţinut interogare Web parte rezultatele într-o grilă / Tabel

  1. Andreas

    Aah… a fost pentru că am numit meu lista stil diferit şi nu dau seama că în ContentQueryMain.xsl se verifică pentru "stil":

    <XSL:atunci când test="@Style='NameOfMyStyle'">

    Cu care a redenumit a functionat. 🙂

    Răspuns
  2. Andreas

    A lucrat aproape pentru mine: I conducere la spre ieşire </tabel> sfârşitul tag-ul corect, dar incepand tag-ul lipseşte. Se pare că testul = "$CurPos = 1" nu se întoarce valabil. Dar de ce?

    Răspuns
  3. Anand singh Rawat

    Mare Post. Paul am făcut toate lucrurile de mai sus. Am o interogare, Cum pot atinge suma de "Cheltuieli totale reale" sau suma valorii a de două coloane.

    Răspuns
  4. Lisa

    Aţi făcut nici o lucrare cu crearea custom ContentQueryMain şi ItemStyle dosar xsl? Motivul pentru care am cer este că nu vreau să vă faceţi griji despre meu stiluri particularizate fi suprascrise cu orice patch-uri sau upgrade-uri. Aveţi exemple? Am încercat a face o copie identică a ContentQueryMain.xsl şi încărcarea acestei copii personalizate noi la Biblioteca stil. Atunci când punerea o trimitere la acest fișier xsl în proprietate de MainXslLink .webpart, I a lua 401 nu sunt autorizate. Fişierul personalizat xsl este o versiune publicate şi toată lumea are acces de citire la acesta.

    Răspuns
  5. Greg Sheridan

    salut, Acest lucru a fost o înregistrare într-adevăr ajutor. L-am toate lucru, şi, de asemenea, puse în aplicare Mike Brown schimbare astfel încât acesta grupuri
    rezultatele în interiorul tabelului de orice aleg ca parametru de grupare după în proprietăţi CQWB.
    Am făcut titlul un link, de asemenea, aşa că funcţionează bine. Mai am o problema, Deşi. Am sunt gruparea rezultatele de numele site-ului. În interiorul tabelului, Acesta grupează-le frumos, şi se pare grozav, dar este încă afară tot grupul de imprimare
    nume(în cazul meu numele site-ului) tabelul de mai sus. Stie cineva cum pentru a scăpa de acestea?
    mulţumesc,
    Greg

    Răspuns
  6. Nici un nume

    Frumos articol. Am reuşit să dea masa mea aspectul implicit listele Sharepoint prin analizarea codul sursă din lista de. Aici sunt principalele blocuri HTML necesare pentru a se potrivi în ItemStyle:

    <TABEL lățime = "100%" Class = "ms-listviewtable" frontieră = 0 cellspacing = 0 cellpadding = 1 dir = "None">

    <!–ANTET–>
    <TR class = "ms-viewheadertr" VALIGN = SUS>
    <Aplicare de nowrap TH = "col" Class = "ms-vh2"><div style = "lăţime:100%;poziţia:relativă;stânga:0;partea de sus:0;">
    <Stilul de tabel = "lăţime:100%;" CtxNum = "1" inaltime = "100%" cellSpacing = 1 cellpadding = 0 class = "ms-unselectedtitle">
    <TR>
    <TD lăţime = "100%" Class = "ms-vb" nowrap>
    Texte du titrul ici

    </TD>
    <Stil TD = "poziţia:absolută;">
    </TD>
    </TR>
    </TABEL></div>
    </TH>

    <!–Repeta pentru toate celulele antet–>
    </TR>

    <!– Date de tabel –>
    <TR clasa = "">
    <!–Coloana de date, utilizaţi codul lui Pavel pentru prima cu hyperlink –>
    <TD Class = "ms-vb2">Date aici</TD>

    <!–Coloană goală–>
    <TD Class = "ms-vb2">
    <span dir = None></durata de><
    /TD>

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

    <!–***Supleant rând – Utilizaţi o variabilă nou XSL care va introduce clasa alternative bazate pe rândul curent modulo 2–>
    <TR class = "ms-alternativ">

    </TR>
    </TABEL>

    Răspuns
  7. Mike Brown
    Zoltan,
    Am fost de lucru pe aceeaşi problemă ca tine. Am vrut toate elementele afişate într-o manieră grupate, mai degrabă decât doar o împarte. Iată cum am realizat-o.
    ContentQueryMain.xsl
    <XSL:atunci când test="@Style='Grid'">
    <XSL:selectaţi Aplicaţi şabloane = "." modul = "itemstyle">
    <XSL:cu-param nume = "CurPos" Selectaţi = "$CurPosition" />
    <XSL:cu-param nume = "ultima" Selectaţi = "$LastRow" />
    <!–Adauga a început această nouă secţiune să treacă în parametrul indicând un grup nou–>
    <XSL:cu-param nume = "StartNewGroup" Select="@__begingroup" />
    </XSL:aplica-template-uri>
    </XSL:când>
    ItemStyle.xsl
    Adauga parametrul dumneavoastră
    <XSL:Param nume = "StartNewGroup" />
    Adauga acest text ca primul rând de date
    <XSL:alege>
    <XSL:Când testul = "$StartNewGroup ="True"">
    <TR>
    <TD >
    <XSL:apel-şablon name="OuterTemplate.GetGroupName">
    <XSL:cu-param nume = "GroupName" Select="@*[nume()= $Group]"/>
    <XSL:cu-param nume = "GroupType" Selectaţi = "$GroupType" />
    </XSL:apel-şablon>
    </TD>
    </TR>
    </XSL:când>
    <XSL:în caz contrar>
    </XSL:în caz contrar>
    </XSL:alege>
    Aceasta ar trebui să aibă grijă de problema grupare in grila ta. Fiecare grupă va începe acum cu un nou rând, indicând numele grupului. În soluţia mea am adăugat de fapt un gol <TD /> în datele pentru a indenta-l, precum şi atât grupului se afla mult mai bine.
    Site1
    datacolumn1 datacolumn2 datacolumn3 etc

    datacolumn1 datacolumn2 datacolumn3 etc
    Site2
    datacolumn1 datacolumn2 datacolumn3 etc
    Site3

    datacolumn1 datacolumn2 datacolumn3 etc

    datacolumn1 datacolumn2 datacolumn3 etc
    etc.
    Răspuns
  8. Zoltan
    Salut Paul,
    Multumesc pentru post, am reuşit să organizeze meu rezultatele interogării într-o grilă, ceea ce este foarte util. Cu toate acestea, Eu ar trebui să merge mai departe şi rezultatele mele bazate pe site-uri de grup. În acest moment, numele site-ului sunt listate primele, şi apoi există numai o grila mare colectarea toate rândurile de la diferite site-uri. Ceva de genul asta:
    Site1 numele
    Numele Site2
    Datele din grila pentru toate site-urile
    Orice idei despre ceea ce ar modifica pentru a obţine datele mele, după cum urmează:
    Site1 numele
    Datele din grila pentru Site1
    Numele Site2
    Datele din grila pentru Site2
    Mulţumesc în avans,
    Zoltan
    Răspuns
  9. Pierre Joubert
    Fantastic Post, rezolvat problema mea am avut.
    Singura mea problema este afişarea câmpul AssignedTo, Configurează cu "utilizator" tipul de câmp şi partea Web importate apoi afişează următoarea eroare:
    "A existat o eroare regăsirea datelor pentru a afişa în această parte Web."
    Am încercat folosind toate tipurile de posibil de domeniul, cu orice alt utilizator"" Acesta nu afişează eroarea, dar aceasta nu se afişează nimic în câmpul. Deci, eu sunt presupunând că tipul de câmp utilizator este corect, Deci, eu trebuie să fi lipseşte un cadru undeva.
    Orice idei cu privire la acest lucru?
    Cu stimă
    Pierre
    Răspuns
  10. Charftong
    Mare Post!!! Foarte foarte helpfull.
    Iute întrebare, aţi făcut nici o lucrare pe afişarea câmpurile AssignedTo sau ModifiedBy cu prezenţa? Pentru unii motiv, ori de câte ori încerc să dipslay câmpul asociat la în CQWP, se afişează întotdeauna cu exemplificare "203;#Charf Tong". Nu pot găsi o cale în jurul acestei.
    Răspuns
  11. Jennifer Davis
    Paul
    Marea articol, vă mulţumesc. Fac ceva foarte asemănătoare, dar doriţi să afişaţi un link la site-ul proiectului, mai degrabă decât elementul din lista. De exemplu, avem 25 site-uri de top proiect nivel și fiecare conține o listă cu tipuri de conținut. Acestea sunt numele proiectului, Divizia, Descriere. Vreau să folosesc partea web de interogare conținut să trageţi aceste date şi au reuşit, cu excepţia faptului că implicit URL-ul ia-mă la intrare articol în lista şi am nevoie să mă ia la site-ul proiectului. imi puteti da vreun sfat?
    vă mulţumesc
    Jen
    Răspuns
  12. Paul Galvin
    Anatol,
    I always folos visual student să editați XSL. Acesta oferă de culoare de codificare şi de asemenea, are unele bune intellisense de sprijin.
    –Paul
    Răspuns
  13. Kieran wrote:

    Hi Paul,

    Atunci când se lucrează cu partea web de interogare xml/xsl şi conţinut, orice bune moduri de a formata ul xslt-ai găsit? Încercarea de a face modificări şi design-ul de testare se dovedeşte a fi o durere dreapta într-o ** folosind doar un editor de text…

    Toate cele bune

    Răspuns
  14. Michael Dipay
    Cu privire la problema pe care am avut ultima dată în cazul în care acesta nu se afişează imaginile din grila dar în schimb afişează textul (https://myweb.com/Marketing/images/icn-order.gif,). Am reuşit să-l rezolve cu ajutorul SharePoint Designer prin crearea de personalizat Vezi şi Selectare coloane particularizate care doresc pentru a afişa. Am aflat că tipul coloana imagini sunt afişate ca URL-ul(virgulă) (ex. https://myweb.com/Marketing/images/icn-order.gif,). Formatul actual este Text, aşa că am să-l schimbe la imagine la xsl comune:valoare de sarcini-> Format ca imagine. Aceasta schimba modul de afişare a imaginilor care am vrut să arăt. Am copiat codul pentru a afişa imaginea ( <img frontieră ="0" src = "{subşir-înainte(@IcnOrder, ‘, ‘)}" /> ) Şi în fişierul ItemStyle.xsl trebuie să schimbe @PICTURECOLUMNNAME în codul <img frontieră ="0" src = "{subşir-înainte(@IcnOrder, ‘, ‘)}" /> . Apoi salvaţi-l. Acum meu masă grila rezultate pentru a afişa text, precum şi imaginea personalizat tip coloane.
    Răspuns
  15. Helen
    Hi Paul,
    Multumesc pentru mare de articol!
    Aţi menţionat formatarea condiţională – "Puteţi, de asemenea, pune în formatarea condiţională, cum ar fi afişarea de proiecte care au depăşit bugetul lor în roşu." Se întâmplă să aibă un exemplu de cod pentru asta?
    Multumesc din nou!
    Helen
    Răspuns
  16. Michael Dipay
    Hi Paul,
    A fost o mare de articol şi a fost capabil să genereze aceleaşi rezultate, cum era de asteptat. Eu am o cerinţă pentru a arăta o imagine în grila ca una din coloanele sale. Acesta nu afişează imaginea pe grila, dar în schimb afişează adresa url a imaginii cu un (,) virgula la final.
    (ex. https://myweb.com/Marketing/images/icn-order.gif, )
    Ar trebui sa folosesc imagine sau o imagine în domeniul CommonViewFields de tip? (ex. InternalColumnName, Imagine)
    mulţumesc,
    Mike
    Răspuns
  17. Cristian ionut

    Post-ul este exact ceea ce căutam. Cu toate acestea, I cant a lua it la spre work.

    Eu am documente stocate în diverse doc. biblioteci dar clasificate folosind o coloană de obicei clasă (alegerea: 1 sau 2. Vreau să utilizaţi CQWP pentru a afişa aceste documente pe baza lor de clasă.
    Am fost capabili de a adăuga CQWP, export-l la SPD, configura itemStyle.xls pentru a afişa câmpurile personalizate în vizualizarea listă. cu toate acestea, Eu poate nu cu succes pune în aplicare ceea ce se descrie aici.

    Acestea sunt coloanele vreau să arate în meu CQWP:

    Tip de fișier (pentru a afişa pictograma)
    Titlu fisier
    Data ultimei modificări
    Modificat prin care
    Extras în
    Verificat în Comentarii

    Am în prezent rezultatul într-un format listă. Cum il pot schimba la un format de talble.

    mulţumesc.

    Narcisa

    Răspuns

lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *