Ülevaade ja eesmärk
Karbist välja, MOSS’ Sisu sisupäringu veebiosa (CQWP) kuvab loendi kujul tulemusi, sarnane Otsingu tulemused. Samuti on võimalik kuvada tulemused võrgustikuvormingus (St. HTML tabeli valmisvormingut). Koordinaatvõrgu vormingud on mõningatel juhtudel parem. Ma kirjeldada, kuidas saavutada kõnealuse mõju käesolevas artiklis.
Äri stsenaariumi
Olen töötanud koos kliendiga linna ettevõttesiseseks MOSS levikuga. Oleme loonud oma taksonoomia selliselt, et projektid on esimese klassi kodanikud hierarhia ning on oma kõrgema taseme saidi. Projektijuhid haldavad singleton projekti kokkuvõtlik teave, nagu pealkiri, eelarve, oodatav Valmimisaeg, ülejäänud eelarve ja muude kokkuvõtte tüüp. Mida "singleton" Ma mõtlen kohandatud SharePointi loend sisaldada ainult üht kaubanimetust garanteeritud. Lihtsustatult, See näeb välja selline:
Tehniline lähenemine on palju sama, nagu on kirjeldatud Siin (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). Et CQWP kasutab XSL-transformatsiooni paisata HTML brauseri renderdamiseks.
Ma alati kujutlevad tulemus enne sukeldudes XSL-i, sest XSL on õudusunenägu. Siin on minu soovitud tulemust:
HTML niimoodi loob tulemuse:
<HTML> <keha> <keskus> <Tabel ääris= 1> <!-- Sildid--> <TR bgcolor= sinine> <TD><font värv= valge><b>Projekti nimi</b></font></TD> <TD joondamine= õigus><font värv= valge><b>Lõpetatud kuupäev</b></font></TD> <TD joondamine= õigus><font värv= valge><b>Eelarve</b></font></TD> <TD joondamine= õigus><font värv= valge><b>Tegelik kulu</b></font></TD> <TD><font värv= valge><b>Üldist seisundit</b></font></TD> </TR> <TR> <TD>Uuesti traat arvuti tuba.</TD> <TD joondamine= õigus>02/01/08</TD> <TD joondamine= õigus>22,500.00</TD> <TD joondamine= õigus>19,000.00</TD> <TD>Pooleli</TD> </TR> <TR> <TD>Sätte servereid SQL Upgrade</TD> <TD joondamine= õigus>04/01/08</TD> <TD joondamine= õigus>7,500.00</TD> <TD joondamine= õigus>0.00</TD> <TD>Planeeritud</TD> </TR> </Tabel> </keskus> </keha> </HTML> |
Lähenemine
Järgmiste juhiste abil luua võrgustiku:
- Kindlaks määrata võrgu komponendid (read/veerud).
- Määrata ja luua vajalikud saidiveergudest.
- Loo alasaidid projektide ja singleton nimekirjad.
- Nende CQWP lisamiseks veebilehele ja konfigureerida otsima oma nimekirjad.
- CQWP's XML tarima täiendavate veergude muutmine.
- Muuda XSL genereerimiseks andmetabeli.
Ma lähen, et keskenduda number kuus. Numbrid üks läbi neli on sirgjooneliselt ja midagi, mis tahes CQWP kasutaja on juba teinud. Number viis on olnud hästi dokumenteeritud teised sealhulgas ammendav screen-shot koormaga artiklist MSDN Siin (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) ja Heather Solomon's blog Siin (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).
Mutrid ja poldid
Alustada ja rakendada juhiseid üks 5 seisuga MSDN-i dokumentatsiooni ja Heather Solomon artikli.
Sel hetkel, Olen lisanud oma CQWP lehele ja on teil oma <CommonViewFields> konfigureeritud vastavalt vajadusele.
Pärast tavalist tegevust, Ma saan neid vahepealseid tulemusi:
1. Luua sisutüübi, mallipõhise kohandatud loendi sisutüübi ja kaks objektidele. Siin on sisu tüüp:
Siin on saidi struktuur:
2. Lisage selle CQWP pärast loomist minu projekti alamsaidid ja singleton projekti kokkuvõtlik nimekirjad:
3. Soovin kaudu täiendava teabe lisamiseks ning <CommonViewFields>:
<kinnisvara Nimi="CommonViewFields" tüüp="stringi">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</kinnisvara>
Teadmiseks, et pidin hoidma kõik atribuudiväljad ühel real või see ei tööta (CQWP oleks mulle, et päring pole üksusi tagastanud).
4. Sel hetkel, Me oleme valmis minema kaugemale MSDN artikli ja flip üle Heather Solomon artikli. Tema juhiste alustades asuvaid samm #5 luua ka kohandatud / unghosted versioon ItemStyle.xsl. Jälgin Heather's nõu, läbi step up 11 ja saada neid vahepealseid tulemusi:
4.1: Nimi minu XSL-malli järgmiselt.:
<XSL-i:malli nimi = "Grid" vasta = "rida[@Style = "Grid"]" mode = "itemstyle">
Ma ka pisut muuta tema soovitas <XSL-i:puhul iga …> lisades on <br /> Tag pakkuda cleaner loetelu:
<XSL-i:puhul iga Valige="@*"> P:<XSL-i:väärtuse kohta Valige="Nimi()" /><br/> </XSL-i:puhul iga>
4.2: Selle veebiosa muutmine, Mine välimus ja valige minu "Grid" stiil:
Muudatuse rakendamiseks ja siin on tulemus:
Näeme, et et väljad tahame (Projekti nimi, kulu, olek, jne) on olemas, me kasutame kui me paisata HTML. Mitte ainult, et, Aga näeme nimed, millega me viide need veerud XSL-i. Näiteks, me viide projekti olek on "Project_x005F_x0020_Name".
Sel hetkel, Me väljuvad Heather's blog ja need giants õlad, Lisan oma natuke.
ContentQueryMain.xsl
MÄRKUS: Kui muudate nii ContentQueryMain.xsl kui ka ItemStyle.xsl, sa pead kontrollima neid faile tagasi, enne kui te näha tehtud muudatuste toimet.
Koordinaatvõrgu tegemise eesmärgil, MOSS kasutab kahte erinevat XSL-failides jõuda tulemusteni, mida näeme, on CQWP. Genereerida väljundi eelmise bit, oleme muutnud ItemStyle.xsl. MOSS tegelikult kasutab teise XSL fail, ContentQueryMain.xsl koos ItemStyle.xsl luua oma HTML-. Nagu nimigi, ContentQueryMain.xsl on peamine"" XSL-i, mis kontrollib üldist voolu tõlge. Ta kordab kaudu leitud esemed ja läbib neid ükshaaval malle ItemStyle.xsl. Me muuta ItemStyle.xsl genereerimiseks Ava <Tabel> Tag enne kiirgavad esimese rea andmeid ja sulgemine <Tabel> pärast viimase rea kiirgavad tag. Selle saavutamiseks, ContentQueryMain.xsl on muudetud läbida kaks parameetrid meie "grid" Mall ItemStyle.xsl, "viimases row" ja "praegune rida". ItemStyle.xsl kõnealuseid mehhanisme tingimuslikult paisata vajalikud Sildid.
Heather Saalomoni tehnikas, me leida ContentQueryMain.xsl. Hotell asub samas kohas kui ItemStyle.xsl. See pilt peaks aitama:
Meil on vaja teha järgmised muudatused:
- XSL-malli muutmine, "CallItemTemplate" mis tegelikult tugineb meie Grid malli ItemStyle.xsl. Me läheb kahest parameetrist Grid malli nii, et ta on tingimuslikult genereerida avamise ja sulgemise andmed <Tabel> Sildid.
- Muuda teine natuke ContentQueryMain.xsl, mis kutsub "CallItemTemplate" edasi "LastRow" parameeter nii et LastRow võib edasi meie Grid Mall.
Leidke malli nimeks "OuterTemplate.CallItemTemplate" määratud stringi:
<XSL-i:Mall Nimi="OuterTemplate.CallItemTemplate">
Asendada kogu malli järgmiselt.:
<XSL-i:Mall Nimi="OuterTemplate.CallItemTemplate"> <XSL-i:Param Nimi="CurPosition" /> <!-- Lisa "LastRow" parameeter. Me kasutada vaid siis, kui kauba laad läbima on "Võrgustik". --> <XSL-i:Param Nimi="LastRow" /> <XSL-i:Valige> <XSL-i:Kui test="@Style = 'NewsRollUpItem'"> <XSL-i:kehtivad Blanketid Valige="." režiim="itemstyle"> <XSL-i:koos param Nimi="EditMode" Valige="$cbq_iseditmode" /> </XSL-i:kehtivad Blanketid> </XSL-i:Kui> <XSL-i:Kui test="@Style = 'NewsBigItem'"> <XSL-i:kehtivad Blanketid Valige="." režiim="itemstyle"> <XSL-i:koos param Nimi="CurPos" Valige="$CurPosition" /> </XSL-i:kehtivad Blanketid> </XSL-i:Kui> <XSL-i:Kui test="@Style = 'NewsCategoryItem'"> <XSL-i:kehtivad Blanketid Valige="." režiim="itemstyle"> <XSL-i:koos param Nimi="CurPos" Valige="$CurPosition" /> </XSL-i:kehtivad Blanketid> </XSL-i:Kui> <!-- Liigu hetkeolukorda ja lastrow Grid itemstyle.xsl Mall. ItemStyle.xsl kasutab seda paisata avamaal ja sulgemine <Tabel> Sildid. --> <XSL-i:Kui test="@Style = "Võrgu""> <XSL-i:kehtivad Blanketid Valige="." režiim="itemstyle"> <XSL-i:koos param Nimi="CurPos" Valige="$CurPosition" /> <XSL-i:koos param Nimi="Kesta" Valige="$LastRow" /> </XSL-i:kehtivad Blanketid> </XSL-i:Kui> <XSL-i:muidu> <XSL-i:kehtivad Blanketid Valige="." režiim="itemstyle"> </XSL-i:kehtivad Blanketid> </XSL-i:muidu> </XSL-i:Valige> </XSL-i:Mall> |
Kommentaarid kirjeldavad muudatuste eesmärk.
Muidugi, "OuterTemplate.CallItemTemplate" nimetatakse ise mõnest muust mallist. Leidke malli tekstistring otsides:
<XSL-i:Mall Nimi="OuterTemplate.Body">
Sirvige OuterTemplate.Body juhiseid ja sisestada LastRow parameeter järgmiselt (näidatud kaldkirjas kommentaar):
<XSL-i:kõne-Mall Nimi="OuterTemplate.CallItemTemplate"> <XSL-i:koos param Nimi="CurPosition" Valige="$CurPosition" /> <!-- LastRow parameetri lisada. --> <XSL-i:koos param Nimi="LastRow" Valige="$LastRow"/> </XSL-i:kõne-Mall>
Pärast kõike seda, Meil on lõpuks asjad nii, et meie ItemStyle.xsl võivad paisata õigesti seadistatud <Tabel> Sildid õiges kohas.
ItemStyle.Xsl
MÄRKUS: Uuesti, Kontrollige ItemStyle.xsl pärast muutuste tegemist, et vaadata nende muutuste mõju.
Meil on kaks ülesannet siin:
- Kogu koordinaatvõrgu malli asendada. Te saate kopeeri/kleebi alt.
- Lisada mõned mumbo jumbo malli määratlusest, mis võimaldab "formatcurrency" malli tööle. (Võiks öelda, et mul on hõre käepide XSL).
Esimese, ItemStyle.xsl ülaosas, Lisa see rida:
<!-- Mõned mumbo jumbo, mis võimaldab meil Kuva USA. valuuta. --> <XSL-i:kümnend-vormingus Nimi="töötajad" kohaline="D" /> <XSL-i:Mall Nimi="Vaikimisi" vaste="*" režiim="itemstyle">
Märkus et lisasin ta vahetult enne selle <XSL-i:malli nimi = "vaikimisi" …> määratlus.
Järgmine, minna tagasi meie Grid malli. Kogu koordinaatvõrgu malli asendada alljärgnev kood. Põhjalikult kommenteeritud, Aga ärge kartke emaili mulle või kommenteerida minu blogi, kui teil on küsimusi.
<XSL-i:Mall Nimi="Grid" vaste="Rida[@Style = "Võrgu"]" režiim="itemstyle"> <!-- ContentMain.xsl läbib CurPos ja Viimane. Me kasutame neid tinglikult paisata avamaal ja sulgemine <Tabel> Sildid. --> <XSL-i:Param Nimi="CurPos" /> <XSL-i:Param Nimi="Kesta" /> <!-- Järgmised muutujad on ümberehitamata standard ItemStyle.xsl --> <XSL-i:muutuja Nimi="SafeImageUrl"> <XSL-i:kõne-Mall Nimi="OuterTemplate.GetSafeStaticUrl"> <XSL-i:koos param Nimi="UrlColumnName" Valige="'ImageUrl'"/> </XSL-i:kõne-Mall> </XSL-i:muutuja> <XSL-i:muutuja Nimi="SafeLinkUrl"> <XSL-i:kõne-Mall Nimi="OuterTemplate.GetSafeLink"> <XSL-i:koos param Nimi="UrlColumnName" Valige="'LinkUrl'"/> </XSL-i:kõne-Mall> </XSL-i:muutuja> <XSL-i:muutuja Nimi="DisplayTitle"> <XSL-i:kõne-Mall Nimi="OuterTemplate.GetTitle"> <XSL-i:koos param Nimi="Pealkiri" Valige="@Title"/> <XSL-i:koos param Nimi="UrlColumnName" Valige="'LinkUrl'"/> </XSL-i:kõne-Mall> </XSL-i:muutuja> <XSL-i:muutuja Nimi="LinkTarget"> <XSL-i:Kui test="@OpenInNewWindow = "True"" >_blank</XSL-i:Kui> </XSL-i:muutuja> <!-- Siin me defineerime muutuja, "tableStart". See sisaldab HTML, mida me kasutame määratleda tabelis kui ka veerusilte avamine. Pange tähele, et kui CurPos = 1, See sisaldab HTML CDATA tag. Muidu, jääb tühjaks. TableStart väärtus on emited, iga kord, kui ItemStyle on nn ContentQueryMain.xsl kaudu. --> <XSL-i:muutuja Nimi="tableStart"> <XSL-i:Kui test="$CurPos = 1"> <![CDATA[ <tabeli äärise = 1> <TR bgcolor = "blue"> <TD><fondi värv = valge><b>Projekti nimi</b></font></TD> <TD joondada = "paremale"><fondi värv = valge><b>Lõpetatud kuupäev</b></font></TD> <TD joondada = "paremale"><fondi värv = valge><b>Eelarve</b></font></TD> <TD joondada = "paremale"><fondi värv = valge><b>Tegelik kulu</b></font></TD> <TD><fondi värv = valge><b>Üldist seisundit</b></font></TD> </TR> ]]> </XSL-i:Kui> </XSL-i:muutuja> <!-- Teine muutuja, tableEnd lihtsalt määratleb sulgemine tabeli silt. Nagu tableStart, See on alati emited. Seetõttu selle väärtuseks määrati tingimisi põhineb kas me oleme läbinud viimase rea ContentQueryMain.xsl. --> <XSL-i:muutuja Nimi="tableEnd"> <XSL-i:Kui test="$CurPos = $Last"> <![CDATA[ </Tabel> ]]> </XSL-i:Kui> </XSL-i:muutuja> <!-- Alati paisata tableStart sisu. Kui see ei ole meile ContentQueryMain.xsl möödusid esimeses reas, siis teame, et selle väärtus olla tühi. Keela väljund põgenedes, sest kuna tableStart see ei ole tühi, See hõlmab tegelikku HTML, mida me tahame brauseris renderdada. Kui me ei ütle XSL parserit blokeerida väljund põgenedes, See loob asju"<Tabel>" selle asemel on"<Tabel>". --> <XSL-i:väärtuse kohta Valige="$tableStart" Keela väljund põgenedes="Jah"/> <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-i:väärtuse kohta Valige="@Project_x005F_x0020_Name"/> </TD> <TD joondamine="paremale"> <XSL-i:väärtuse kohta Valige="@Project_x005F_x0020_End_x005F_x0020_Date"/> </TD> <TD joondamine="paremale"> <XSL-i:kõne-Mall Nimi="formatcurrency"> <XSL-i:koos param Nimi="väärtus" |
See on olnud uskumatult kasulik. Aitäh!
Aah… See oli, sest minu loendilaadi teise nimega ja ei teadnud, et selle ContentQueryMain.xsl see kontrollib "stiil":
<XSL-i:Kui test="@Style='NameOfMyStyle" ">
Selle ümber töötanud. 🙂
See peaaegu töötas minu jaoks: Mul õnnestub väljund on </Tabel> end tag õigesti, Aga algus silt on puudu. Tundub katse = "$CurPos = 1" Tagastab true. Aga miks?
Suur postitus. Ma olen teinud kõik eespool nimetatud asjad Paul. Mul on päring, Kuidas ma saavutada summa "kokku tegelikud kulud" või kahe veeru väärtuse summa.
Kas te olete teinud ühtegi tööd luua kohandatud ContentQueryMain ja ItemStyle xsl-failides? Ma palun põhjus on, et ma ei taha muretsema oma kohandatud laadide teisaldatud plaastrid või uuendamine. Kas teil on näiteid? Olen proovinud teha identset koopiat on ContentQueryMain.xsl ja üleslaadimist selle uue kohandatud copy stiilis Raamatukogu. Kui panna viide selle xsl-fail on .webpart MainXslLink kinnisvara, Ma saan 401 ei ole lubatud. Kohandatud xsl-fail on avaldatud versiooni ja kõik on lugenud juurdepääsu.
Fantastic postitus tänu! On see nüüd võitles viimase paari päeva jooksul.
Hei, See oli tõesti kasulik postitamist. Mul on kõik tööd, ja ka rakendatud Mike Brown muutus nii rühmitab
tulemuste tabelis kohta, mida ma valin Rühmitusalus parameetriks on CQWB atribuudid.
Tegin selle jaotise lingi ka, nii see toimib kenasti. Mul on veel üks probleem, Kuigi. Ma olen grupeerimine tulemused saidi nime järgi. Tabeli sees, rühmitab neid kenasti, ja see tundub hea, aga ikka on trüki välja kogu rühm
nimed(minu puhul saidi nimed) tabeli kohal. Kas keegi teab kuidas neist lahti saada?
Tänud,
Greg
Tore artikkel. Suutsin anda minu lauas välimuse vaikimisi SharePointi loendid loend lähtekoodi analüüsides. Siin on põhilised HTML plokid vaja paigaldada ItemStyle:
<TABELI laius = "100%" klassis = "ms-listviewtable" Border = 0 cellspacing = 0 cellpadding = 1 dir = "Puudub">
<!–PÄIS–>
<TR klassi = "ms-viewheadertr" VALIGN = TOP>
<TH nowrap ulatus = "col" klassis = "ms-vh2"><div style = "laius:100%;positsioon:suhteline;vasakule:0;Top:0;">
<Tabelilaadi = "laius:100%;" CtxNum = "1" kõrgus = "100%" cellspacing = 1 cellpadding = 0 klassi = "ms-unselectedtitle">
<TR>
<TD laius = "100%" Klassis = "ms-vb" nowrap>
Texte du tiiter ici
</TD>
<TD style = "asukoht:absoluutne;">
</TD>
</TR>
</TABEL></DIV>
</TH>
<!–Korrake kõikide tabelipealkirja lahtrites–>
</TR>
<!– Tabeli andmed –>
<TR klassi = "">
<!–Veeru andmete, Kasutage Pauluse koodi hüperlinki sisaldav esimene –>
<TD klassis = "ms-vb2">Andmed siin</TD>
<!–Tühi veerg–>
<TD klassis = "ms-vb2">
<span dir = None></span><
/TD>
<!–Kuupäeva veerg–>
<TD klassis = "ms-vb2">
<NOBR SIDUDA>11/12/2008</NOBR SIDUDA>
</TD>
</TR>
<!–***Alternatiivne rida – Kasutage uut XSL muutuja, mis lisab põhineb praeguse rea moodul 2 alternatiivne klass–>
<TR klassi = "ms vaheldumisi">
…
</TR>
</TABEL>
Thatz just otsin...Sa rock mees...Elagu...Armastan sind ametikohale..
<XSL-i:kehtivad Blanketid valige = "." mode = "itemstyle">
<XSL-i:koos param nimi = "CurPos" Valige = "$CurPosition" />
<XSL-i:koos param nimi = "Viimane" Valige = "$LastRow" />
<XSL-i:koos param nimi = "StartNewGroup" Select="@__begingroup" />
</XSL-i:Kui>
<XSL-i:Millal testida = "$StartNewGroup ="True"">
<TR>
<TD >
<XSL-i:kõne-Mall name="OuterTemplate.GetGroupName">
<XSL-i:koos param nimi = "GroupName" Select="@*[Nimi()= $Group]"/>
<XSL-i:koos param nimi = "GroupType" Valige = "$GroupType" />
</XSL-i:kõne-Mall>
</TD>
</TR>
</XSL-i:Kui>
<XSL-i:muidu>
</XSL-i:muidu>
</XSL-i:Valige>
Tere Paul,
Xml/xsl ja sisu sisupäringu veebiosa töötamisel, Kas olete leidnud ühtegi head võimalust oma xslt vormindamiseks? Proovin teha muudatusi ja selle kujundamine on osutunud õige valu on on ** vaid tekstiredaktori kasutamine…
Kõike paremat
(näiteks. https://myweb.com/Marketing/images/icn-order.gif, )
Tuleks kasutada pildi või pildi väljatüübi CommonViewFields? (näiteks. InternalColumnName, Pilt)
Teie postitus on täpselt, mida ma otsisin. Aga, Ma ei saa seda tööd.
Mul on dokumendid, mida säilitatakse eri doc. raamatukogude kuid salastatud, kasutades kohandatud klassi veerg (valik: 1 või 2. Ma tahan näidata neid dokumente põhinevad oma klassi CQWP abil.
Mul oli võimalus lisada ka CQWP, ekspordi ühtne Programmdokument, Konfigureerige kohandatud fileds loendi vaates kuvatavate itemStyle.xls. Aga, Ma ei suutnud edukalt ellu viia, mida sa kirjeldad siin.
Need on ma tahan näidata mu CQWP veerud:
Faili tüüp (ikooni kuvamiseks)
Faili nimetus
Viimase muutmise kuupäev
Kes on muudetud
Välja möllitud
Kontrollitud kommentaare
Mul on praegu tulemuseks loendi vorm. Kuidas muuta see talble Formaat.
Tänud.
Saji
Sorry minu nimi ei ole kindlasti missspelling kui ka ” tulid.