Content Query Web deel resultaten weergegeven in een raster / Tabel

Overzicht en doelstelling

Out of the box, MOSS’ Webonderdeel Inhoudsquery (CQWP) de resultaten worden in een lijstindeling weergegeven, vergelijkbaar met zoekresultaten. Het is ook mogelijk om de resultaten in een grid-formaat weergeven (dwz. HTML-tabelindeling). Raster formaten zijn beter in bepaalde omstandigheden. Beschrijf ik hoe om te bereiken dat effect in dit artikel.

Bedrijfsscenario

Ik heb gewerkt met een cliënt op de uitrol van een ondernemingsbreed MOSS. Wij hebben hun taxonomie ontworpen zodanig dat projecten eerste klassenburgers in de hiërarchie zijn en hun eigen site van het hoogste niveau hebben. Projectmanagers handhaven een singleton lijst van projectsamenvattingsgegevens, zoals de titel van, begroting, verwachte Voltooiingsdatum, resterende begroting en andere velden resumétype. Door "singleton" Ik bedoel een aangepaste SharePoint-lijst gegarandeerd bevatten slechts één item. Simplistisch, het ziet er als volgt:

afbeelding

De technische aanpak is veel hetzelfde als beschreven Hier (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). De CQWP maakt gebruik van een XSL-transformatie voor het uitzenden van HTML voor de browser weer te geven.

Ik altijd het resultaat voordat duiken in de XSL omdat XSL een nachtmerrie is voor ogen. Hier is mijn gewenste resultaat:

afbeelding

HTML als dit genereert dat resultaat:

<HTML>
 <lichaam>
 <Center>
 <tabel grens= 1>

<!-- Etiketten-->
 <tr bgcolor= blauw>
 <TD><lettertype Kleur= wit><b>Naam van het project</b></lettertype></TD>
 <TD uitlijnen= rechts><lettertype Kleur= wit><b>Datum voltooid</b></lettertype></TD>
 <TD uitlijnen= rechts><lettertype Kleur= wit><b>Begroting</b></lettertype></TD>
 <TD uitlijnen= rechts><lettertype Kleur= wit><b>Werkelijke kosten</b></lettertype></TD>
 <TD><lettertype Kleur= wit><b>Algemene Status</b></lettertype></TD>
 </tr>

<tr>
 <TD>Boren computerlokaal.</TD>
 <TD uitlijnen= rechts>02/01/08</TD>
 <TD uitlijnen= rechts>22,500.00</TD>
 <TD uitlijnen= rechts>19,000.00</TD>
 <TD>In uitvoering</TD>
 </tr>

<tr>
 <TD>Bepaling servers voor SQL Upgrade</TD>
 <TD uitlijnen= rechts>04/01/08</TD>
 <TD uitlijnen= rechts>7,500.00</TD>
 <TD uitlijnen= rechts>0.00</TD>
 <TD>Gepland</TD>
 </tr>

</tabel>
 </Center>
 </lichaam>
</HTML>

Aanpak

Als volgt te werk als u wilt maken het raster:

  1. Identificatie van de bestanddelen van het raster (rijen en kolommen).
  2. Definiëren en maken noodzakelijk sitekolommen.
  3. Maak sub sites voor de projecten en het singleton lijsten.
  4. De CQWP aan een webpagina toevoegen en configureren om te zoeken naar uw lijsten.
  5. De CQWP van XML naar het verzamelen van de aanvullende kolommen wijzigen.
  6. De XSL voor het genereren van een tabel wijzigen.

I 'm gonna concentreren op nummer zes. Getallen tot en met 4 zijn rechttoe-rechtaan en iets dat elke gebruiker CQWP heeft al gedaan. Nummer vijf is goed gedocumenteerd door anderen met inbegrip van dit volledig scherm-schot beladen artikel van MSDN Hier (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) en Heather Solomon's blog Hier (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Moeren en bouten

Beginnen en uit te voeren stappen 1 tot en met 5 vanaf de MSDN-documentatie en Heather Solomon artikel.

Op dit punt, u kunt uw CQWP aan de pagina hebt toegevoegd en u hebt uw <CommonViewFields> zo nodig geconfigureerd.

De gebruikelijke stappen uit te voeren, Ik krijg deze tussentijdse resultaten:

1. Een inhoudstype maken, een templatized aangepaste lijst voor dat inhoudstype en twee sites. Hier wordt het type inhoud:

afbeelding

Hier is de structuur van de site:

afbeelding

2. De CQWP na het maken van mijn project subsites en het singleton project samenvatting lijsten toevoegen:

afbeelding

3. Voeg de aanvullende informatie die ik wil via de <CommonViewFields>:

        <eigenschap naam="CommonViewFields" type="tekenreeks">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</eigenschap>

Merk op dat ik moest houden de eigenschapsvelden op één lijn of het zou niet werken (CQWP zou vertellen me dat de query heeft geen resultaten opgeleverd).

4. Op dit punt, we klaar om te gaan dan het MSDN-artikel en tik op over Heather Solomon's artikel. Haar stappen beginnen in de buurt van stap #5 een aangepaste maken / unghosted versie van ItemStyle.xsl. Ik volg Heather's advies, door stap omhoog 11 en krijg deze tussentijdse resultaten:

4.1: Mijn XSL-sjabloon als volgt de naam:

<XSL:Sjabloonnaam = "Grid" overeenkomen met = "rij[@Style = 'Raster']" modus = "itemstyle">

Ik wijzigen ook iets haar voorgesteld <XSL:for-each …> door het toevoegen van een <BR /> label voor een schonere:

    <XSL:for-each Selecteer="@*">
      P:<XSL:waarde-van Selecteer="naam()" /><BR/>
    </XSL:for-each>

4.2: Ik wijzigen het webonderdeel, Ga naar uiterlijk en selecteer mijn "Grid" stijl:

afbeelding

De wijziging door te voeren en hier is het resultaat:

afbeelding

Uit het bovenstaande kunnen we zien dat de velden die we willen (Naam van het project, kosten, status, etc) beschikbaar zijn voor ons om te gebruiken wanneer we de HTML-code uitstoten. Niet alleen dat, maar we zien de namen waaraan we moeten verwijzen naar die kolommen in de XSL. Bijvoorbeeld, We verwijzen naar de statusdatum van het Project als "Project_x005F_x0020_Name".

Op dit punt, We vertrekken van Heather's blog en van de schouders van deze reuzen, Ik voeg mijn eigen beetje.

ContentQueryMain.xsl

OPMERKING: Wanneer u wijzigingen aanbrengt aan zowel ContentQueryMain.xsl als ItemStyle.xsl, u moet controleren dat deze bestanden terug in voordat u het effect van uw wijzigingen zien.

Voor doeleinden van het raster maken, MOSS maakt gebruik van twee verschillende XSL-bestanden voor de productie van de resultaten die we van een CQWP zien. Voor het genereren van de vorige bit van output, We bewerkt ItemStyle.xsl. MOSS daadwerkelijk gebruik maakt van een andere XSL-bestand, ContentQueryMain.xsl om in combinatie met ItemStyle.xsl voor het genereren van de HTML-code. Zoals de naam al impliceert, ContentQueryMain.xsl is de belangrijkste"" XSL waarmee de totale stroom van vertaling. Het doorlopen van alle gevonden items en geeft ze één voor één aan sjablonen in ItemStyle.xsl. We zullen wijzigen ItemStyle.xsl voor het genereren van de open <tabel> Label vóór dat de eerste rij van de gegevens en de afronding <tabel> Label na de laatste rij uitstoten. Om dit te bereiken, ContentQueryMain.xsl is aangepast om twee parameters doorgeven aan onze "grid" sjabloon in ItemStyle.xsl, "laatste rij" en "huidige rij". ItemStyle.xsl maakt gebruik van deze voorwaardelijk uitstoten de nodige codes.

Met behulp van Heather Solomon techniek, Wij zoeken ContentQueryMain.xsl. Het is gelegen in de dezelfde plaats als ItemStyle.xsl. Dit schermschot moet helpen:

afbeelding

We moeten de volgende wijzigingen aanbrengen:

  • Een XSL-sjabloon wijzigen, "CallItemTemplate" dat roept eigenlijk onze raster sjabloon in ItemStyle.xsl. We zullen twee parameters doorgeven aan de Grid-sjabloon, zodat het de vereiste gegevens hebben zal voor het genereren van voorwaardelijk openen en sluiten <tabel> Tags.
  • Een ander stukje van ContentQueryMain.xsl waarin de "CallItemTemplate wijzigen" geschiedde het een "LastRow" met de parameter dus dat LastRow kan worden doorgegeven aan onze raster sjabloon.

Zoek de sjabloon met de naam "OuterTemplate.CallItemTemplate" geïdentificeerd door de tekenreeks:

  <XSL:sjabloon naam="OuterTemplate.CallItemTemplate">

De hele sjabloon als volgt vervangen:

  <XSL:sjabloon naam="OuterTemplate.CallItemTemplate">
    <XSL:param naam="CurPosition" />

    <!--
      De "LastRow toevoegen" met de parameter.
      We alleen gebruiken wanneer het item stijl pass in zich "Grid".
    -->
    <XSL:param naam="LastRow" />

    <XSL:Kies>
      <XSL:Wanneer test="@Style = 'NewsRollUpItem'">
        <XSL:apply-templates Selecteer="." modus="itemstyle">
          <XSL:met-param naam="EditMode" Selecteer="$cbq_iseditmode" />
        </XSL:apply-templates>
      </XSL:Wanneer>
      <XSL:Wanneer test="@Style = 'NewsBigItem'">
        <XSL:apply-templates Selecteer="." modus="itemstyle">
          <XSL:met-param naam="CurPos" Selecteer="$CurPosition" />
        </XSL:apply-templates>
      </XSL:Wanneer>
      <XSL:Wanneer test="@Style = 'NewsCategoryItem'">
        <XSL:apply-templates Selecteer="." modus="itemstyle">
          <XSL:met-param naam="CurPos" Selecteer="$CurPosition" />
        </XSL:apply-templates>
      </XSL:Wanneer>

      <!--
              Huidige positie en lastrow doorgeven aan de Grid itemstyle.xsl sjabloon.
              ItemStyle.xsl gebruik dat het uitzenden van de open en sluiten <tabel> Tags.
      -->
      <XSL:Wanneer test="@Style = 'Raster'">
        <XSL:apply-templates Selecteer="." modus="itemstyle">
          <XSL:met-param naam="CurPos" Selecteer="$CurPosition" />
          <XSL:met-param naam="Laatste" Selecteer="$LastRow" />
        </XSL:apply-templates>
      </XSL:Wanneer>

      <XSL:anders>
        <XSL:apply-templates Selecteer="." modus="itemstyle">
        </XSL:apply-templates>
      </XSL:anders>
    </XSL:Kies>
  </XSL:sjabloon>

De opmerkingen beschrijving van het doel van de wijzigingen.

Natuurlijk, de OuterTemplate.CallItemTemplate"" zelf wordt aangeroepen vanuit een andere sjabloon. Die sjabloon vinden door te zoeken naar deze tekenreeks:

<XSL:sjabloon naam="OuterTemplate.Body">

Blader door de instructies in OuterTemplate.Body en de parameter LastRow bijvoegen (weergegeven als een commentaar in cursief):

<XSL:oproep-sjabloon naam="OuterTemplate.CallItemTemplate">
  <XSL:met-param naam="CurPosition" Selecteer="$CurPosition" />
  <!-- De LastRow parameter invoegen. -->
  <XSL:met-param naam="LastRow" Selecteer="$LastRow"/>
</XSL:oproep-sjabloon>

Na dit alles, We hebben eindelijk dingen correct ingesteld zodat onze ItemStyle.xsl kunnen uitstoten <tabel> Tags op de juiste plaats.

ItemStyle.Xsl

OPMERKING: Weer, check in ItemStyle.xsl na wijzigingen zodat u het effect van die wijzigingen zien.

We hebben hier twee taken:

  • Vervang de gehele Grid-sjabloon. U kunt kopiëren/plakken uit de onderstaande lijst.
  • Sommige mumbo jumbo buiten de definitie van de sjabloon waarmee "formatcurrency toevoegen" sjabloon om te werken. (U kunt vertellen dat ik heb een ijle greep op XSL).

Eerste, in de buurt van de top van ItemStyle.xsl, Voeg deze regel toe:

  <!-- Sommige mumbo jumbo waarmee we kunnen U.S weergeven. valuta. -->
  <XSL:decimaal-formaat naam="personeel" cijfers="D" />

  <XSL:sjabloon naam="Standaard" wedstrijd="*" modus="itemstyle">

Opmerking dat ik toegevoegd het direct vóór de <XSL:Sjabloonnaam = "standaard" …> definitie.

Volgende, Ga terug naar onze raster sjabloon. De gehele Grid sjabloon vervangen door de onderstaande code. Het is grondig toegelicht, maar aarzel dan niet om me e-mail of reacties op mijn blog als u vragen hebt.

  <XSL:sjabloon naam="Raster" wedstrijd="Rij[@Style = 'Raster']" modus="itemstyle">

    <!--
      ContentMain.xsl gaat CurPos en laatste.
      We deze gebruiken om voorwaardelijk uitstoten het openen en sluiten <tabel> Tags.
    -->
    <XSL:param naam="CurPos" />
    <XSL:param naam="Laatste" />

    <!-- De volgende variabelen zijn tussentijds niet zijn gewijzigd van de standaard ItemStyle.xsl -->
    <XSL:variabele naam="SafeImageUrl">
      <XSL:oproep-sjabloon naam="OuterTemplate.GetSafeStaticUrl">
        <XSL:met-param naam="UrlColumnName" Selecteer="'ImageUrl'"/>
      </XSL:oproep-sjabloon>
    </XSL:variabele>
    <XSL:variabele naam="SafeLinkUrl">
      <XSL:oproep-sjabloon naam="OuterTemplate.GetSafeLink">
        <XSL:met-param naam="UrlColumnName" Selecteer="'LinkUrl'"/>
      </XSL:oproep-sjabloon>
    </XSL:variabele>
    <XSL:variabele naam="DisplayTitle">
      <XSL:oproep-sjabloon naam="OuterTemplate.GetTitle">
        <XSL:met-param naam="Titel" Selecteer="@Title"/>
        <XSL:met-param naam="UrlColumnName" Selecteer="'LinkUrl'"/>
      </XSL:oproep-sjabloon>
    </XSL:variabele>
    <XSL:variabele naam="LinkTarget">
      <XSL:Als test="@OpenInNewWindow = 'True'" >_blank</XSL:Als>
    </XSL:variabele>

    <!--
      Hier definiëren we een variabele, "tableStart".  Dit bevat de HTML-code die we gebruiken om te definiëren van de opening van de tabel, alsmede de kolomlabels.  Merk op dat als CurPos = 1, het bevat de HTML-code in een CDATA-tag.
      Anders, het is leeg.

      De waarde van tableStart is emited telkens wanneer ItemStyle wordt aangeroepen via ContentQueryMain.xsl.
    -->
    <XSL:variabele naam="tableStart">
      <XSL:Als test="$CurPos = 1">
        <![CDATA[
        <tabelrand = 1>
          <TR bgcolor = "blauw">
            <TD><tekstkleur = "wit"><b>Naam van het project</b></lettertype></TD>
            <TD align = "rechts"><tekstkleur = "wit"><b>Datum voltooid</b></lettertype></TD>
            <TD align = "rechts"><tekstkleur = "wit"><b>Begroting</b></lettertype></TD>
            <TD align = "rechts"><tekstkleur = "wit"><b>Werkelijke kosten</b></lettertype></TD>
            <TD><tekstkleur = "wit"><b>Algemene Status</b></lettertype></TD>
          </tr>
        ]]>
      </XSL:Als>
    </XSL:variabele>

    <!--
      Een andere variabele, tableEnd gewoon definieert de afsluitende tag tabel.

      Zoals met tableStart, het is altijd emited.  Dit is de reden waarom de waarde is toegewezen voorwaardelijk op basis van de vraag of we de laatste rij met ContentQueryMain.xsl heb zijn aangenomen.
    -->
    <XSL:variabele naam="tableEnd">
      <XSL:Als test="$CurPos = $Last">
        <![CDATA[ </tabel> ]]>
      </XSL:Als>
    </XSL:variabele>

    <!--
      Altijd het uitzenden van de inhoud van tableStart.  Als dit niet de eerste rij doorgegeven aan ons door ContentQueryMain.xsl, dan weten we de waarde leeg zal worden.

      Uitschakelen uitvoer ontsnappen omdat wanneer tableStart het niet leeg, Het omvat werkelijke HTML die we willen worden weergegeven door de browser.  Als we niet vertellen uitvoer de XSL-parser uitschakelen ontsnappen, zal het genereren van dingen zoals"&lt;tabel&gt;" in plaats van"<tabel>".
    -->
    <XSL:waarde-van Selecteer="$tableStart" uitschakelen-uitvoer-ontsnappen="Ja"/>


    <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:waarde-van Selecteer="@Project_x005F_x0020_Name"/>
      </TD>

      <TD uitlijnen="recht">
        <XSL:waarde-van Selecteer="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD uitlijnen="recht">
        <XSL:oproep-sjabloon naam="FormatCurrency">
          <XSL:met-param naam="waarde" 
Selecteer="@Project_x005F_x0020_Budget"></XSL:met-param> </XSL:oproep-sjabloon> </TD> <TD uitlijnen="recht"> <XSL:oproep-sjabloon naam="FormatCurrency"> <XSL:met-param naam="waarde" Selecteer="@Project_x005F_x0020_Expenses">
</XSL:met-param> </XSL:oproep-sjabloon> </TD> <TD> <XSL:waarde-van Selecteer="@Project_x005F_x0020_Status"/> </TD> <!-- Alle van de volgende handelingen is uitgecommentarieerd te verduidelijken dingen. Echter, het terug te brengen en dat soort dingen in een <TD> om het effect te zien. --> <!-- <div id = "linkitem" klasse = "post"> <XSL:Als test = "tekenreeks-lengte($SafeImageUrl) != 0 "> <div class = & quoSafeImageUrl-links "> <een href = "{$SafeLinkUrl}" target = "{$LinkTarget}"> <img klasse = "afbeelding-fixed-width" src = "{$SafeImageUrl}"
ALT = "{@ImageUrlAltText}"/> </een> </div> </XSL:Als> <div class = "link-item"> <XSL:oproep-sjabloon
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <een href = "{$SafeLinkUrl}"
target = "{$LinkTarget}" titel = "{@LinkToolTip}"> <XSL:Selecteer waarde-van "$DispXSLTitle" = /> </een> <div class = "omschrijving"> <XSL:waarde-van select="@Description" /> </div> </div> </div>
--> </tr> <!-- Uitstoten de afsluitende tag tabel. Als we niet op de laatste rij, Dit is leeg. --> <XSL:waarde-van Selecteer="$tableEnd" uitschakelen-uitvoer-ontsnappen="Ja"/> </XSL:sjabloon> <XSL:sjabloon naam="FormatCurrency"> <XSL:param naam="waarde" Selecteer="0" /> <XSL:waarde-van Selecteer='getalnotatie($waarde, "$DDD,DDD,DDD.DD", "personeel")' /> </XSL:sjabloon>

22 gedachten over "Content Query Web deel resultaten weergegeven in een raster / Tabel

  1. Andreas

    Aah… het was omdat ik een andere naam hebben mijn stijl lijst en wist niet dat dat in de ContentQueryMain.xsl gecontroleerd op de "stijl":

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

    Met die omgedoopt tot werkte het. 🙂

    Antwoord
  2. Andreas

    Het bijna werkte voor mij: Ik beheren voor de uitvoer van de </tabel> Label correct beëindigen, maar de eerste tag ontbreekt. Het lijkt de test = "$CurPos = 1" geeft geen resultaat waar. Maar waarom?

    Antwoord
  3. Anand singh Rawat

    Grote Post. Paul heb ik de bovenstaande dingen gedaan. Ik heb een query, Hoe kan ik bereiken de som van "totale werkelijke Expences" of de som van de waarde van twee kolommen.

    Antwoord
  4. Lisa

    Heb je gedaan geen werk met het maken van aangepaste XSL-bestanden ContentQueryMain en ItemStyle? De reden dat ik vraag is dat ik niet willen zorgen te maken over mijn aangepaste opmaakprofielen worden overschreven met alle patches of upgrades. Heb je voorbeelden? Ik heb geprobeerd een identieke kopie van de ContentQueryMain.xsl maken en uploaden van die nieuwe aangepaste kopie naar de stijlbibliotheek. Bij de samenstelling van een verwijzing naar dit XSL-bestand in de .webpart MainXslLink eigenschap, Ik krijg 401 niet toegestaan. Het aangepaste XSL-bestand is een gepubliceerde versie en iedereen heeft leestoegang tot het.

    Antwoord
  5. Greg Sheridan

    Hallo, Dit was een echt nuttig boeken. Ik heb het alle werken, en ook geïmplementeerd Mike Brown wijzigen zodat het groepen
    de resultaten in de tabel door wat ik kiezen als de parameter Group By in de CQWB eigenschappen.
    Ik legde een verband ook de titel, dus het werkt mooi. Ik heb nog steeds een probleem, Hoewel. Ik ben de resultaten groeperen op naam van de site. In de tabel, Het groepeert ze mooi, en het ziet er geweldig, maar het is nog steeds afdrukken uit de groep
    namen(in mijn geval de sitenamen) boven de tabel. Weet iemand hoe om zich te ontdoen van deze?
    Bedankt,
    Greg

    Antwoord
  6. Geen naam

    Leuk artikel. Ik erin geslaagd om mijn tabel geven het uiterlijk van de standaard Sharepoint-lijsten door het analyseren van de broncode van de lijst. Hier zijn de belangrijkste HTML-blokken die nodig zijn om te passen in ItemStyle:

    <Tabelbreedte = "100%" klasse = "ms-listviewtable" border = 0 cellspacing = 0 cellpadding = 1 dir = 'Geen'>

    <!–KOPTEKST–>
    <Klasse TR = "ms-viewheadertr" VALIGN = BOVEN>
    <TH nowrap toepassingsgebied = "col" klasse = "ms-vh2"><div-style = "width:100%;positie:relatieve;links:0;Boven:0;">
    <TABLE style = "width:100%;" CtxNum = "1" hoogte = "100%" Cellspacing = 1 cellpadding = 0 class = "ms-unselectedtitle">
    <TR>
    <TD breedte = "100%" Klasse = 'ms vb" NoWrap>
    Texte du titre ici

    </TD>
    <TD stijl = "positie:absolute;">
    </TD>
    </TR>
    </TABEL></div>
    </TH>

    <!–Herhaal voor alle cellen met koptekst–>
    </TR>

    <!– Gegevens in een tabel –>
    <Klasse TR = "">
    <!–Gegevenskolom, Paul's code gebruiken met de hyperlink voor de eerste –>
    <TD Class = "ms-vb2">Gegevens hier</TD>

    <!–Lege kolom–>
    <TD Class = "ms-vb2">
    <span dir = None></span><
    /TD>

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

    <!–***Plaatsvervanger rij – Gebruik een nieuwe variabele van XSL waarmee de alternatieve klasse op basis van de huidige rij modulo 2 wordt ingevoegd–>
    <Klasse TR = "ms-afwisselend">

    </TR>
    </TABEL>

    Antwoord
  7. Mike Brown
    Zoltan,
    Ik was bezig met hetzelfde probleem als u. Ik wilde al mijn objecten weergegeven in een gegroepeerde wijze in plaats van gewoon een lits. Hier is hoe ik bereikt het.
    ContentQueryMain.xsl
    <XSL:Wanneer test="@Style='Grid'">
    <XSL:apply-templates Selecteer = "." modus = "itemstyle">
    <XSL:met param name = "CurPos" Selecteer "$CurPosition =" />
    <XSL:met param name = "laatste" Selecteer "$LastRow =" />
    <!–Voeg dit nieuwe gedeelte door te geven in de parameter die aangeeft dat een nieuwe groep is begonnen–>
    <XSL:met param name = "StartNewGroup" Select="@__begingroup" />
    </XSL:apply-templates>
    </XSL:Wanneer>
    ItemStyle.xsl
    Uw parameter toevoegen
    <XSL:param name = "StartNewGroup" />
    Deze tekst toevoegen als de eerste rij met gegevens
    <XSL:Kies>
    <XSL:Wanneer test = "$StartNewGroup ="True"">
    <tr>
    <TD >
    <XSL:oproep-template name="OuterTemplate.GetGroupName">
    <XSL:met param name = "GroupName" Select="@*[naam()= $Group]"/>
    <XSL:met param name = "GroupType" Selecteer "$GroupType" = />
    </XSL:oproep-sjabloon>
    </TD>
    </tr>
    </XSL:Wanneer>
    <XSL:anders>
    </XSL:anders>
    </XSL:Kies>
    Dit moet zorgen voor uw probleem groepering in het raster. Elke groep zal nu beginnen met een nieuwe rij met vermelding van de naam van de groep. In mijn oplossing toegevoegd ik eigenlijk een blanco <TD /> in de gegevens laten inspringen het ook zo stond de groepering uit veel beter.
    Site1
    datacolumn1 datacolumn2 datacolumn3 enz

    datacolumn1 datacolumn2 datacolumn3 enz
    Site2
    datacolumn1 datacolumn2 datacolumn3 enz
    Site3

    datacolumn1 datacolumn2 datacolumn3 enz

    datacolumn1 datacolumn2 datacolumn3 enz
    etc.
    Antwoord
  8. Zoltan
    Hallo Paul,
    Bedankt voor de post, Ik erin geslaagd om het organiseren van mijn queryresultaten in een raster, dat is zeer nuttig. Echter, Ik moet verder gaan en mijn resultaten op basis van Sites groeperen. Op dit moment, de sitenamen worden als eerste weergegeven, en dan is er slechts één grote raster alle rijen van verschillende sites verzamelen. Iets als dit:
    Naam site1
    Naam Site2
    Gegevens in een raster voor alle sites
    Alle ideeën over wat ik zou moeten wijzigen om mijn gegevens als volgt:
    Naam site1
    Gegevens in raster voor Site1
    Naam Site2
    Gegevens in raster voor Site2
    Merci vervroegd,
    Zoltan
    Antwoord
  9. Pierre Joubert
    Fantastische Post, opgelost mijn probleem dat ik had.
    Mijn enige probleem is de weergave van het veld ToegewezenAan, Ik configureren het met de "gebruiker" veldtype en de geïmporteerde webpart geeft de volgende foutmelding:
    "Er was een fout bij het ophalen van gegevens weer te geven in dit webonderdeel."
    Ik heb geprobeerd met behulp van alle mogelijke veldtypen, met om het even wat andere die gebruiker"" het toont niet de fout, maar het toont niet om het even wat op het gebied. Dus ik ben ervan uitgaande dat klopt de gebruiker veldtype, dus ik moet worden ontbreekt een instelling ergens.
    Eventuele ideeën over dit?
    Groeten
    Pierre
    Antwoord
  10. Charftong
    Grote Post!!! Zeer zeer nuttig.
    Snelle vraag, je heb geen werk op het veld ToegewezenAan of ModifiedBy weergeven met aanwezigheid gedaan? Voor sommige reden, Wanneer ik probeer om te dipslay het veld toegewezen aan in de CQWP, het altijd wordt weergegeven met als een voorbeeld "203;#Charf Tong". Ik kan niet vinden een manier rond dit.
    Antwoord
  11. Jennifer Davis
    Paul
    Groot artikel, Bedankt. Ik ben bezig met iets vergelijkbaars, maar wil een koppeling naar de projectsite in plaats van het item in de lijst weergegeven. Bijvoorbeeld, We hebben 25 bovenste niveau project sites en elk bevatten een lijst met inhoudstypen. Dit zijn de naam van het Project, Divisie, Beschrijving. Ik wil het webonderdeel Inhoudsquery gebruiken te trekken van deze gegevens en zijn erin geslaagd behalve dat standaard de URL me aan de artikelpost weergegeven in de lijst neemt en mij zowaar nood om me naar de projectsite. u annuleerteken verlenen mij ieder raadgeving?
    Bedankt
    Jen
    Antwoord
  12. Paul Galvin
    Kieren,
    Ik gebruik altijd visuele studio te bewerken de XSL. Het biedt kleurcodering en het heeft ook enkele goede intellisense-ondersteuning.
    –Paul
    Antwoord
  13. Kieran wrote:

    Hallo Paul,

    Bij het werken met het webonderdeel Inhoudsquery xml/xsl en inhoud, heb je gevonden een goede manieren om uw xslt opmaken? Proberen wijzigingen aanbrengen en de testopzet blijkt een juiste pijn in de een ** alleen met behulp van een teksteditor…

    De beste

    Antwoord
  14. Michael Dipay
    Met betrekking tot de kwestie had ik laatste tijd waar het niet de beelden van de mening van het net wordt weergegeven, maar in plaats daarvan wordt de tekst weergegeven (https://myweb.com/Marketing/images/icn-order.gif,). Ik beheren om op te lossen het maken van aangepaste weergave en selecteer de aangepaste kolommen die ik wil weergeven met behulp van SharePoint Designer. Ik heb ontdekt dat het type van de kolom afbeeldingen worden weergegeven als URL(door komma 's) (bijvoorbeeld. https://myweb.com/Marketing/images/icn-order.gif,). De huidige indeling is tekst, dus ik heb om het te veranderen naar afbeelding van de gemeenschappelijke xsl:waarde van taken-> Indeling als afbeelding. Deze wijziging het display naar de aangepaste afbeeldingen die ik wilde laten zien. Ik heb de code om te laten zien de afbeelding gekopieerd ( <img grens ="0" src = "{subtekenreeks-vóór(@IcnOrder, ‘, ‘)}" /> ) En in het ItemStyle.xsl bestand dat ik moet veranderen de @PICTURECOLUMNNAME aan de code <img grens ="0" src = "{subtekenreeks-vóór(@IcnOrder, ‘, ‘)}" /> . Sla het. Nu typen mijn tabel raster resultaten te tonen zowel de tekst als de aangepaste afbeelding kolommen.
    Antwoord
  15. Helen
    Hallo Paul,
    Bedankt voor de geweldige artikel!
    U had het over voorwaardelijke opmaak – "Je kunt ook zelf in de voorwaardelijke opmaak, zoals het weergeven van projecten die hebben overschreden hun begroting in het rood." U heeft toevallig hebben een codevoorbeeld daarvoor?
    Nogmaals bedankt!
    Helen
    Antwoord
  16. Michael Dipay
    Hallo Paul,
    Het was een groot artikel en was in staat om dezelfde resultaten te genereren zoals verwacht. Ik heb een vereiste om een afbeelding als een van de kolommen in het raster tonen. De afbeelding op het raster niet wordt weergegeven, maar in plaats daarvan wordt de url weergegeven op de afbeelding met een (,) door komma's aan het einde.
    (bijvoorbeeld. https://myweb.com/Marketing/images/icn-order.gif, )
    Moet ik afbeelding of figuur gebruiken in het CommonViewFields veldtype? (bijvoorbeeld. InternalColumnName, Afbeelding)
    Bedankt,
    Mike
    Antwoord
  17. Saji Ijiyemi

    Uw bericht is precies wat ik zocht. Echter, Ik kan niet krijgen om te werken.

    Ik heb documenten die zijn opgeslagen in verschillende doc. bibliotheken maar ingedeeld aan de hand van een aangepaste klasse kolom (keuze: 1 of 2. Ik wil CQWP gebruiken om deze documenten op basis van hun klasse weergeven.
    Ik was in staat om toe te voegen van de CQWP, exporteren naar SPD, de itemStyle.xls als u wilt aangepaste velden weergeven in lijstweergave configureren. echter, Ik kon niet met succes uitvoeren wat je hier beschrijft.

    Dit zijn de kolommen die ik wil laten zien in mijn CQWP:

    Bestandstype (pictogram weergeven)
    File Title
    Datum laatst gewijzigd
    Gewijzigd door die
    Uitgecheckt om te
    Gecontroleerd In commentaren

    Ik heb momenteel het resultaat in een lijstindeling. Hoe wijzig ik het naar een talble formaat.

    Bedankt.

    Durag

    Antwoord

Verlaat een antwoord te Lee Goergen annuleer antwoord

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *