Kategorija Arhiv: SharePoint razvoj

Preprosta razlaga: “Vrednosti ne sodi v pričakovanem območju.”

POSODOBITEV: Anonimni plakat levo veliko pripomb o notranja imena. Obstati varen čitati to.

Pri delu z dogodek sprejemniki in drugo kodo, ki se sklicuje na elemente s seznama SharePoint prek predmetnega modela, I pogosto delajo napake, ki jih ustvarjajo te napake med izvajanjem:

Napaka pri nalaganju in teče dogodek sprejemnik Conchango.xyzzyEventReceiver v xyzzy, Različica = 1.0.0.0, Culture = neutral, ŽetonJavnegaKljuča = 0dc50a750396c3ac. Dodatne informacije je pod. : Vrednosti ne sodi v pričakovanem območju.

Mislim, to je dokaj splošne napake, ki potencialno povzroča različne načine. Vendar, Ena preprosta razlaga je, da sem navajanje polje nepravilno. Če je ime polja "Rok", Morajo reference je takole v dogodek sprejemnik:

lastnosti.ListItem["Datum zapadlosti"]

Ko sem napačno črkujete oz. napačno primer uporabe, ko se sklicuje na polje, SharePoint ustvarja zgoraj omenjene runtime napake. Na primer, To je narobe:

lastnosti.ListItem["datum zapadlosti"]

</namen>

Naročite se na moj blog.

Technorati Tags:

Hitro & Enostavno: Ustvarite mapo in dodelite vrsto vsebine (Ali, So vaše KPI in pojemo preveč)

Da bi težavi KPI Sem pisal o tukaj, Jaz sem nekaj testov in odkril da KPI delo proti mape z meta podatki na enak način, da dela proti dokumente ali elemente seznama. Izkazalo, da ustvarite novo vrsto vsebine glede na vrsto vsebine mape in nato doda nekaj polj. Ustvaril nekateri kazalci in izkazala za sebe, ki KPI-ji delujejo po pričakovanjih. To je dobrodošla novica. To ni popoln, ker v globino, ki ga dobite od KPI pred mape je ni ravno tisto, kar želite. To ni preveč povračila v mojem primeru, ker 1) končni uporabniki ne vedo vse bolje in 2) vrtanje navzdol gre v mapo. Oni kliknite ime mape in so v točki. To je že z dvema klikoma namesto enega, kar ni konec sveta.

To je lepo tekla z delom sem bil početje. Sem ustvariti mapo za vsak dokument, ki dobi naložili. To poteka preko prejemnik dogodkov. Kot posledica, To je kos torte, da je nadrejeno mapo meta podatkov v sinhronizacijo s KPI usmerjenih meta podatki iz datoteke, sam ker vodovod je že v veljavi. This allows me to have my KPI’s and eat them too 🙂

Sem spremenil dogodek sprejemnik dodati mapo in nastavite vrsto vsebine to novo mapo na moj meri KPI prijazne vrste vsebine. Ta košček kode did ukana:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Dokumenti").Podmape;
  »SPFolder « addedFolder = srcFolders.Add(lastnosti.ListItem.ID.ToString());
  SPContentTypeId kpiCT = nove SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Vsebine ID vrste"] = kpiCT;
  addedFolder.Item.Update();

Če želite poiskati dejanski ID vrste vsebine, Postranski to vrsto vsebine prek nastavitve mesta in ulitek/vezni listi to iz URL, kot je prikazano:

slike

</namen>

Naročite se na moj blog!

Technorati Tags: ,

Hitro in enostavno: »SPFolder «od SPListItem noter je prejemnik dogodka

Nerad priznam, to, vendar sem spopadali s tole vse dan. Moj dogodek sprejemnik mora posodobiti polje nadrejeno mapo. To malo pokaže, kako to storiti:

zasebno nična UpdateParentFolder(SPItemEventProperties lastnosti)
{

»SPFolder « thisItemFolder = lastnosti.ListItem.File.ParentFolder;
thisItemFolder.Item["Stanje ZZ odobritve"] = "Dobra novica, Vsakdo!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

V tem primeru, Delam s knjižnico dokumentov in lastnosti prihajajo iz ItemAdded dogodka.

Trik je, da ne morete dobiti »SPFolder« artikla neposredno iz artikla, sama (i.e. lastnosti.ListItem.Folder ima ničelno vrednost). Namesto tega, Pojdi na element seznama povezane datoteke in dobil mapo datoteke.

</namen>

Naročite se na moj blog!

Technorati Tags:

Še drug dogodek sprejemnik Debug trik

Sem prepričan, da nisem prva oseba, da bi prišli do tega. Vendar, Nisem opazil kdo objavi trik, kot je ta, ker sem začel pozorno Skupnosti julija lani. Tako, Sem mislil sem post ta nasvet za hitro in enostavno iskanje napak.

Delam na dogodek sprejemnik, ki je začel ustvarjati to napako v na 12 panj:

Napaka pri nalaganju in teče dogodek sprejemnik Conchango.xyzzyEventReceiver v xyzzy, Različica = 1.0.0.0, Culture = neutral, ŽetonJavnegaKljuča = blahbalhbalh. Dodatne informacije je pod. : Referenčni objekt ni nastavljena na primer predmeta.

Nisem vedel, kje je uvedel to žuželka, ker je naredil preveč stvari v enem od svoj zbornik/uvajanje/preskusnih ciklih.

Si se potrudil Ta rešitev zadobiti svoj PPP tam z upanjem da SharePoint 12 panj bi pokazal sled sklada, šele ne sreča. Ne vem, če je mogoče, in če nekdo ne, prosim povej mi 🙂

Vem, da je mogoče napišite svoj dnevnik sporočil je 12 panj. Odkrito, Hotel sem nekaj malo manj strašljivo in hitrejše izvajanje.

Zazdelo se mi, da vsaj lahko dobil nekaj osnovnega sledenja podatkov z lovom in ponovno metanje splošne izjeme takole:

  poskusite {
    UpdateEditionDate(lastnosti);
  }
  ulova (Izjema e)
  {
    vrzi nove Izjema("Dispečer, UpdateEditionDate(): Izjema: [" + e.ToString() + "].");
  }

To je pokazala v na 12 thusly panj:

Napaka pri nalaganju in teče dogodek sprejemnik Conchango.xyzzyEventReceiver v xyzzy, Različica = 1.0.0.0, Culture = neutral, ŽetonJavnegaKljuča = blahblahblah. Dodatne informacije je pod. : Dispečer, UpdateEditionDate(): Izjema: [NullReferenceException.: Referenčni objekt ni nastavljena na primer predmeta. na Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties lastnosti) na Conchango.xyzzyManagementEventReceiver.Dispatcher(SPItemEventProperties lastnosti, Niz eventDescription)].

To mi je dal vse podrobnosti, sem potreboval, da bi izsledila da poseben problem in pričakujem rabiti to veliko tekoč naprej.

</namen>

Naročite se na moj blog!

Raztopina: SPQuery iskanje mape

Ta preteklem tednu je bilo izvajanje je "razvijajoči" rešitev za stranko, ki uporablja BDC in SPQuery in tekel v neki težava z SPQuery proti knjižnico dokumentov, ki vsebuje mape. Bottom line: dodelite "rekurzivni" atribut pogled poizvedbe.

Moj scenarij:

  • V ponedeljek, Upload dokument in nekaj meta podatke.
  • Naslednji teden, Dodam nov dokument. Veliko novega dokumenta meta podatkov temelji na dokumentu sem naložil v ponedeljek (ki smo jih poimenovali "glavni dokument").
  • Ustvarili smo spletno storitev fasado, ki zagotavlja BDC-prijazen vmesnik na seznam, tako da uporabniki lahko preprosto poiščete dokumenta ponedeljek preko naslov iskanje.
  • BDC podatkov stolpca zagotavlja prijazen uporabniški vmesnik. (To je del od svoj poskus v using BDC za bolj prijazno stolpec za iskanje).

Končni fasado storitev BDC uporablja poizvedbe, kot to storiti iskanje:

 // Uporablja U2U orodje za pomoč pri ustvarjanju te CAML poizvedbe.
      oQuery.Query =
        "<Kjer>";

      Če (titleFilter.Length > 0)
        oQuery.Query  =
          "  <In>";

      oQuery.Query  =
        "    <In>" +
        "      <GEQ>" +
        "        <FieldRef ime =  "DocumentId" />" +
        "        <Vrednost vrste =  "Text">" + minId + "</Vrednost>" +
        "      </GEQ>" +
        "      <LEQ>" +
        "        <FieldRef ime =  "DocumentId" />" +
        "        <Vrednost vrste =  "Text">" + maxId + "</Vrednost>" +
        "      </LEQ>" +
        "    </In>";

      Če (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Vsebuje>" +
          "      <FieldRef ime =  "Title" />" +
          "      <Vrednost vrste =  "Text">" + titleFilter + "</Vrednost>" +
          "    </Vsebuje>" +
          "  </In>";
      oQuery.Query  =
        "</Kjer>";

V začetni fazi razvoja, to obdelan velik. Vendar, smo uvedli map v imeniku za reševanje nekaterih problemov in nenadoma, moj BDC izbirnik ne bi našlo zadetkov. Našel sem to do dejstva, da se SPQuery nikoli ne bi vrnila rezultatov. Smo uporabili mape predvsem omogočiti več datotek z istim imenom, da, vendar z različnimi meta podatkov. Ko je datoteka prenesena, smo ustvariti mapo, ki temeljijo na ID elementa seznama in nato premaknite datoteke tam (Sem pisal o tem tukaj; smo imeli mešane rezultate s tem pristopom, ampak na celotno, to deluje dobro). Uporabnik ne skrbi o mapah in dejansko, res ne razumem, da so vse mape. Smo nastavili vse poglede na knjižnici prikaz elementov ne mape.

Sem udaril težavo dvakrat kot tehnično izvajanje razvil in rešiti to drugače vsakič. Prvič, Sem bil ne uporabljate vsebuje operaterja v poizvedbi. Ne vsebuje operaterja, Sem mogel rešiti problem tako, da določite pogled na contructor na SPQuery. Namesto da bi uporabili privzeti konstruktor:

SPList.Update() oList = spletni.Seznami["Dokumenti"];

SPQuery oQuery = nove SPQuery();

Namesto tega sem rabil konstruktorja, ki določen pogled:

SPList.Update() oList = spletni.Seznami["Dokumenti"];

SPQuery oQuery = nove SPQuery(oList.Views["Vse dokumente"]);

To rešiti problem in sem začel, da se moje rezultate.

Potem sem dodal vsebuje operaterja v mešanici in se razšla še. Izkazalo se je, da vsebuje upravljavec, kolikor lahko povem, ne deluje s pogledom na enak način kot je enostavnejša GEQ / Operaterji LEQ. Did neki preiskava ter se naučili, da poizvedbe ViewAttributes naj bi "Rekurzivni", kot v:

oQuery.ViewAttributes = "Obseg = "Recursive"";

To rešiti naloga za vsebuje. v bistvu, tudi to rešiti svoj prvotni problem iskanja in če sem imel določeno rekurzivno atribut prvič, Jaz bi ne predelati v izdaja spet.

Dejstvo, da na podlagi pogleda SPQuery deluje pri nekaterih operaterjih (GEQ/LEQ) drugih pa ne (VSEBUJE), skupaj z dejstvom, da KPI ne zdi, da dela na vseh, z mapo, ki vsebuje dokument knjižnice vodi mi verjeti, da je SPQuery nekaj orthogonality vprašanj.

Posebna zahvala:

  • Dobri ljudje na U2U in svoje poizvedbe orodje.
  • Michael Hoffer je super "učenje z delom" blog post, Komentarji in Odzivi.

</namen>

Naročite se na moj blog!

MAH KPI žuželka? Seznam indikatorja vezani v knjižnico dokumentov z mapami

POSODOBITEV 02/29/08: Ta problem rešen z ustvarjanjem mape in nato dodelite vrsto vsebine v mapo, ki je meta podatke rabim za KPI-jev. Sem to malo bolj podrobno opisane tukaj.

Uvedli smo tehnično rešitev, kjer uporabniki naložite dokumente v knjižnico dokumentov. Prejemnik dogodkov ustvari imenik in se premakne datoteko v imenik (z uporabo tehnike, ki je podoben, kar sem napisal o tukaj). Smo uspešno prikrmarili okrog morebitne težave, ki so posledica dogodka sprejemniki, ki preimenovati naložene datoteke (predvsem zato, ker uporabnikom nikoli ne začne svoj dokument s klikom na "nove" ampak namesto tega ustvariti dokumenti lokalno in nato naložite).

Meta podatkov za te dokumente vključuje Yes/No stolpec mesta imenuje »nujno" in še en stolpec mesta imenuje "Status". Moramo spoznati poslovanje zahteva, ki prikazuje odstotek "nujno" dokumenti, katerih stanje je »Čakajoče« «.

To je navadno prepost uganjati in sem opisal nekaj zelo podobnega temu na SharePoint Beagle z veliko posnetkov zaslona, če vas zanima.

Na kratko, Sem storil to:

  • Ustvarite pogled na doc knjižnice, imenovane "Čakajoče".
  • Konfiguracija pogleda prezreti strukturo map.
  • Ustvarite seznam KPI.
  • Ustvarite indikator na seznamu, ki kaže na doc lib in ki »čakajoče" pogled.

To preprosto ne dela. KPI kaže svoj tarča (npr.. pet nujnih dokumentov) ampak vedno je prikazano dejansko število nujnih dokumentov kot nič. Paradoksalno, Če ste vrtati navzdol do podrobnosti, To kaže pet nujnih dokumentov na seznamu. Sem ustvaril zelo preprosta scenarij z njima, enega v mapi in ne. Tu je zaslon strel:

slike

Zgoraj zaslon strel jasno kaže, dveh dokumentov v pogledu pa vrednost"" je ena. "CamlSchema" prazen dokument Id je v korenski mapi, drugi pa v mapo z imenom "84".

Se mi zdi da kljub temu, da določite pogled, KPI ne časti, "show vse elemente brez map" nastavitev in namesto, omejuje na korensko mapo.

Če se motim, prosim kaplja mi a črta ali pustite komentar.

</namen>

Naročite se na moj blog!

Technorati Tags:

Rešitev problema: “FileNotFoundException” Z mojo funkcijo sprejemnik.

Sem delal na funkcijo prejšnji teden, da bi dodali nekaj dogodek sprejemniki poseben seznam stopnje. (Sem blogged malo o tem seznamu sprejemnik tukaj).

Uporaba ukazne vrstice, Lahko namestite funkcijo s ne zmota (Toda glej spodaj za skrite napake). Ko sem poskušal uvesti funkcijo na mestu, MAH pritožil, "FileNotFoundException" Napaka. Ta blog vnos opisuje, kako jaz rešiti to.

To je napaka, da mah mi je pokazal v web brskalnik:

Funkcija "b2cb42e3-4f0a-4380-Jože Kajin-1ef9cd526f20’ ni mogoče namestiti, ker natovarjanje zbira prejemnika dogodkov »xyzzyFeatureReceiver_0" ni uspelo: System.IO.FileNotFoundException: Ni bilo mogoče naložiti datoteke ali sestavljanje "xyzzyFeatureReceiver_0’ ali ene od njenih odvisnosti. Sistem ne najde navedene datoteke.
Ime datoteke: "xyzzyFeatureReceiver_0’
na System.Reflection.Assembly.nLoad(»AssemblyName «ime datoteke, Niz codeBase, Dokazi assemblySecurity, Skupščina locationHint, StackCrawlMark& stackMark, Logična throwOnFileNotFound, Logična forIntrospection)
na System.Reflection.Assembly.InternalLoad(»AssemblyName «assemblyRef, Dokazi assemblySecurity, StackCrawlMark& stackMark, Logična forIntrospection)
na System.Reflection.Assembly.InternalLoad(Niz assemblyString, Dokazi assemblySecurity, StackCrawlMark& stackMark, Logična forIntrospection)
na System.Reflection.Assembly.Load(Niz assemblyString)
na Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Skupščina zavezujoče sečnja je obrnjen ne sveže.
Skupščina vežejo neuspeh dnevnika omogočite, nastavite vrednost registra [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) za 1.
Opomba: Obstaja nekaj učinkovitosti kazni povezane z montažo vežejo neuspeh sečnje.
Če želite izklopiti to funkcijo, premestitev registracija vrednost [HKLMSoftwareMicrosoftFusion!EnableLog].

Odpravljanje težav s storitvijo Windows SharePoint Services.

Vem, kako namerno povzroči to napako: ne namestite sestavljanje v predpomnilniku GAC. toda, je bilo v predpomnilniku GAC. Sem običajno namesti zbire v predpomnilniku GAC, da jih povlečete v c:\windowsassembly mapo z raziskovalcem. Nikoli nisem čutil 100% udobno tem, ker sem vedno mislil, da gacutil obstajala z razlogom … zato sem se potrudil, da. Ni razlike.

Internets iskal in našel ta post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Plakat zgodilo, da se uporabljajo isti koren košček kode (iz notranjosti WSS knjiga s tega seznama) tako, da je znak upanja. Vendar, predlog okrasitev skupščina z na [skupščina: ] direktive ni smiselno, da me. Poskušal sem ga vseeno in sem imel prav. Ni razlike.

Potem pa sem opazil, da moj definicijo razreda ni javno. Naredila sem jo javno in to narejen ne razlika.

Naslednji, Sem šel na trud usposobiti "skupščina vežejo neuspeh dnevnik" (po navodilih koristno in natančno določeno) in to je, kjer se stvari obračajo na zanimivo. To prijaviti kaže mi runtime iščejo povsod na tem strežniku za moje skupščine. Se celo zdi, da se preiskava za to v moje zdravilo omari. toda … to ne bo ga poiščete v predpomnilniku GAC.

Sem dal na moje zimsko jakno in pojdi iskanje Internets in našli, da je nekdo imel ta problem preveč. Dolgotrajni razpravi v objavo, da je peters off v nič in ne najde rešitev.

Sem premakniti moje skupščine v eno od mest, dnevnik trdi, da je iskanje in sem malo več napredovati. Sem nagrajen s nov zmota v brskalniku, ko sem poskušal aktivirati funkcijo:

Ni bilo mogoče ustvariti funkcijo sprejemnik predmet iz zboru "xyzzyFeatureReceiver_0", vrsta "Conchango.xyzzyFeatureReceiver" za funkcijo b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Vrednost ne more biti nič.
Ime parametra: vrsta
na System.Activator.CreateInstance(Vrsta, Logična nejavne dol Nike)
na System.Activator.CreateInstance(Vrsta)
na Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Odpravljanje težav s storitvijo Windows SharePoint Services.

Čas za eno zadnje potovanje Internets!

Tokrat se mi zdi, predvidljivo dovolj, da MOSS izdaja to napako, ker skupščina ni v GAC.

Rad bi dobil nekaj pozitivnega iz tega in poskusite čutiti malo ponosen, da sem ustvaril v Ubežnik MSIL sklopov, vendar to ne deluje. Jaz sem samo navaden motenih. Sem našel sebe Mrmljanje "kura ali jajce" pod mojo sapo.

Končno sem se odločil, da punt. I ustvarite povsem nov projekt in ulitek/pasta zbornik od incredible-cloaked-from-the-GAC-assembly dela projekta nad to nov projekt. (Iščem graditi zastavo, imenuje nekaj podobnega "Skrij iz zbira zavezujoče, če je nameščen v predpomnilniku GAC" vendar ne more najti enega).

Namestiti funkcijo in aktivirate in … to tovarna! Tako, po vsem tem, Sem imel, da v bistvu "odmevajoč’ moj projekt. To je še en razlog, zakaj sovražim računalnike.

Sem izvedeti kaj koristnega iz tega. Je bila namestitev funkcije, ki uporabljajo stsadm zapoved črta ves dan in uporabljali v "-sila" možnost iz navade. Iz neznanega razloga, Sem storil ne raba-sile možnosti, ko sem namestil nov projekt. tokrat, Sem dejansko, resnično pozabite prepisati to nov projekt skupščine v predpomnilniku GAC. Kot posledica, Sem dobil to FielNotFoundException"" Napaka. tokrat, Dobil sem ga od stsadm, ne, ko sem poskušal aktivirati funkcijo preko spletnega brskalnika. Tako, -sile dejansko ima dve vlogi. Vam omogoča, da ponovno namestite obstoječe funkcijo. Prav tako omogoča, da namestite nečistnik funkcija, ki ne more delovati med izvajanjem z ukinitvijo napake. Piše verjetno toliko v pomoč nekje, vendar nikoli nisem opazila, da.

</namen>

Technorati Tags: ,

Hitro & Enostavno: Preimenovati preneseno datoteko z uporabo SharePoint predmetnega modela preko dogodek sprejemnik

POSODOBITEV: To deluje, vendar obstajajo znatne omejitve, ki so opisane v pripombah. To maj še vedno obstati koristen v nekatere okoliščine.

POSODOBITEV 2: V moj trenutni projekt, Uporabniki vedno prenos dokumentov. Kot posledica, Ne izvajam problem kjer MS Word izvaja in misli, da je datoteka je bila preimenovana nanjo. Sem teči v težave, "datoteko je spremenil nekdo drug" in to rešiti prek preprosto semafor vrsto zastave. Uporabnik potreba v sprememba meta podatkovno polje iz svoje privzete vrednosti v nekaj drugega. Na itemupdated() sprejemnik poišče veljavno vrednost tam pred dejansko izvedbo preimenovanja in od takrat, Nisem imel težav. Vaš kilometrine lahko razlikujejo.

Imam stranko zahteva, da spremenite ime datoteke naložili v določeno knjižnico dokumentov v skladu z določeno poimenovanja. API zagotavlja preimenovati"()" metoda. Namesto tega, uporabljamo "MoveTo(…)". Tukaj je minimalno košček kode, da bi to dosegli:

 javnih Preglasitev nična ItemAdded(SPItemEventProperties lastnosti)
        {
            SPFile f = lastnosti.ListItem.File;

            f.MoveTo(lastnosti.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

Težavno, samo malo je "lastnosti. ListItem.ParentList.RootFolder.Url". Na MoveTo() metoda zahteva URL. Ki pire niz točk mi v korensko mapo moje trenutne knjižnice dokumentov. To omogučiti mi izogibati se težko kodiranja v moj dogodek sprejemnik.

To je bolj koristno prevod, to does ista stvar, vendar dodeli ime datoteke "Naslov":

 javnih Preglasitev nična ItemAdded(SPItemEventProperties lastnosti)
        {
            DisableEventFiring();

            // Naziv artikla dodelite ime datoteke, sama.
 // OPOMBA: Ta dodelitev mora potekati preden smo spremeniti samo datoteko.
 // Kliče posodobitev() na je SPFile zdi, da izniči lastnosti v
 // nekem smislu.  Posodobitve "naslov" ni uspelo, dokler ne da spremeniti (in posodobitev() klic)
 // so se preselili pred spremembo imena datoteke.
            lastnosti.ListItem["Naslov"] = lastnosti.ListItem.File.Name;

            lastnosti.ListItem.Update();

            SPFile f = lastnosti.ListItem.File;

            // Dobili razširitev datoteke.  Moramo, da je kasneje.
 niz spfileExt = nove FileInfo(f.Name).Razširitev;

            // ID elementa seznama preimenujte datoteko in uporabite pripono datoteke ohraniti
 // tisti del, nedotaknjena.
            f.MoveTo(lastnosti.ListItem.ParentList.RootFolder.Url +
                "/" + lastnosti.ListItem["ID"] + spfileExt);

            // Zavezati v gibanju.
            f.Update();

            EnableEventFiring();
        }

Nagel odlagališče: Spletni gradnik poizvedbe vsebine, Vrednost v stolpcu za iskanje in XSL

Imam ime stolpca v vrsto vsebine, imenovane "Realne lokacije nepremičnine".

Ta stolpec je tipa "iskanje".

So spremenjeni <CommonViewFields> in ItemStyle.xsl stolpec.

Preprost <XSL:vrednost-izberite =…> vrne nazaj notranje vrednosti, ki vključuje položaj podatkov, kot:

1;#Miami

Človeku prijaznih vrednost, uporabite xsl podniz po, kot je prikazano:

<XSL:( @Real_x005F_x0020_Estate_x005F_x0020_Location, #') ">< / xsl:vrednost za >(@Real_x005F_x0020_Estate_x005F_x0020_Location,’#’)"></XSL:vrednost za>

Uporabite to tehniko, vsakič, ko delate za iskanje vrednosti v XSL pretvorbe in potrebo, da se človeku prijaznih vrednost.

<namen />

Technorati Tags: , ,

Hitro in enostavno: Določajo notranji stolpec ime stolpec mesta

POSODOBITEV: Jeremy Thake je blogged o tem in dal nekaj kodo za konzolo aplikacija notranja imena, ki prikazuje.

Sem bil težaven zadobiti poizvedba po vsebini spletnega gradnika za prikaz datuma zapadlosti iz opravilo in ker oznako zaslona je "Datum zapadlosti", Domneva, da ime stolpca za uporabo v <CommonViewFields> je "Due_x0020_Date".

Narobe!

Pravi stolpec ime v tem primeru je bil, "da bi DueDate".

Kako si našel? Sem ponovno prebral Heather Solomon's blog vpis na spreminjanje CQWP prikazati dodatne stolpce podatkov. Ona opisuje ta postopek v korak #13. Zaupati. Pravilno. Vsaj, To je bil pravi zame. Ni zaupal sprva za drugega stolpca z veliko daljše ime.

Rečem "zaupati" ker ni zaupal in verjetno zapravili blizu dve uri višek glavo pred steno. Ko sem rešiti na "da bi DueDate" ime, Sem hotel dodati drugo polje <CommonViewFields>. V tehniki Salomon, Sem bil pridobivanje stolpec ime kot "XYZ_x0020_Project_x0020_Due_x00".

Pomislil sem, To je jasno skrajšani ime. Sem hodil naprej in un-skrajšani je brez uspeha. Končno sem rabil navidezno skrajšani ime ter to obdelan.

Bonus nasvet: Ko sem delala z na CQWP, Če sem dodal slabo interno ime, ki v <CommonViewFields>, v CQWP bi mi povedal, da je vrnil poizvedbo ni rezultatov. toda, Če sem vrsto podatkov dodati ime polja, da bi se vrne rezultat. Dodajanje podatkov vrste dejansko prikriti problem saj je navajanje neobstoječa polje. Lahko ga dodate, ampak ko sem poskušal prikazati njegovo vrednost, Vedno dobim prazno.

To did ne prikrijejo napako:

<CommonViewFields>Due_x0020_Date;</CommonViewfields>

To did prikrije napake:

<CommonViewFields>Due_x0020_Date,DateTime;</CommonViewfields>

</namen>