Archívy kategórie: SharePoint rozvoja

Jednoduché vysvetlenie: “Hodnota nespadá do rozsahu očakávaných.”

AKTUALIZÁCIA: Anonymný plagát opustil skvelý komentár o vnútorné názvy. Uistite sa, že čítať.

Pri práci s prijímače udalostí a ďalšie kód, ktorý odkazuje na položky zoznamu SharePoint prostredníctvom objektového modelu, Často robia chyby, ktoré generujú táto chyba v režime runtime:

Chyba pri načítaní a beh udalostí prijímač Conchango.xyzzyEventReceiver v xyzzy minového, Verzia = 1.0.0.0, Kultúra = neutrálne, PublicKeyToken = 0dc50a750396c3ac. Ďalšie informácie sú pod. : Hodnota nespadá do rozsahu očakávaných.

Myslím, že je to pomerne generické chyba, ktorá je potenciálne spôsobená v rôznymi spôsobmi. Avšak, jedno jednoduché vysvetlenie je, že som odkazovanie pole nesprávne. Ak je názov poľa "Dátum splatnosti", Musíte odkaz to takhle v príjemca udalosti:

vlastnosti.ListItem["Dátum splatnosti"]

Pri chybne alebo odkazuje na pole používate zlý prípad, SharePoint generuje vyššie uvedená chyba v režime runtime. Napríklad, to je zle:

vlastnosti.ListItem["dátum splatnosti"]

</koniec>

Vyberajte môj blog.

Technorati Tags:

Rýchle & Jednoduché: Vytvorenie priečinka a priradiť typ obsahu (Alebo, Majú vašich indikátory KPI a jesť príliš)

S cieľom obísť problém indikátora KPI Napísal som o tom tu., Robil nejaké testy a zistil, že KPI pracovať proti priečinky s meta dát rovnakým spôsobom, že pracujú proti dokumentov alebo zoznam položiek. Som dokázal to vytvorením nového typu obsahu založené na type obsahu priečinka a potom pridať niekoľko polí. Vytvoril niektoré ukazovatele a dokázal sám, že indikátory KPI fungovať podľa očakávania. To bola vítaná správa. Nie je to dokonalé, pretože vrták-down, dostanete od KPI proti priečinky nie je presne to, čo chcete. To nie je moc nevýhodou, v mojom prípade, pretože 1) koncoví užívatelia nepoznajú nič lepšieho a 2) Vrták-dole ide do priečinka. Oni kliknite na názov priečinka a v položke. Je to dve kliknutia nie jeden, čo nie je koniec sveta.

To plynuli pekne s prácou som robil. Som vytvoriť priečinok pre každý dokument, ktorý dostane nahrané. Toto je robené cez príjemca udalosti. V dôsledku, je to kúsok torte udržať nadradený priečinok meta dáta v synchronizáciu s KPI-riadený meta dáta zo súboru, sama o sebe, pretože práve prebieha inštalatérske. This allows me to have my KPI’s and eat them too 🙂

Som upravil príjemca udalosti pridať priečinok a potom nastaviť typ obsahu tejto novej zložky na môj vlastný typ obsahu KPI-priateľský. Tento kus kódu urobil trik:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Dokumenty").Podpriečinky;
  SPFolder addedFolder = srcFolders.Add(vlastnosti.ListItem.ID.ToString());
  SPContentTypeId kpiCT = nové SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Identifikáciu typu obsahu"] = kpiCT;
  addedFolder.Item.Update();

Ak chcete vyhľadať skutočný identifikáciu typu obsahu, Prístupná cez stránku nastavenia typu obsahu a skopírovať a vložiť to z adresy URL, ako je uvedené:

obrázok

</koniec>

Vyberajte môj blog!

Rýchle a jednoduché: Dostať SPFolder SPListItem príjemca udalosti

Nesnáším to priznať, ale som bojoval s týmto všetky deň. Moje udalosti prijímač potrebuje aktualizovať pole jeho nadradený priečinok. Toto trochu ukazuje, ako na to:

súkromné neplatné UpdateParentFolder(SPItemEventProperties vlastnosti)
{

SPFolder thisItemFolder = vlastnosti.ListItem.File.ParentFolder;
thisItemFolder.Item["Stav schválenia ZZ"] = "Dobrá správa, Všetci!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

V tomto prípade, Ja pracujem s knižnicou dokumentov a vlastnosti sú posielané z ItemAdded udalosti.

Trik je, že nemôžete dostať SPFolder položky priamo zo samotnej položky (tj. vlastnosti.ListItem.Folder má hodnotu null). Namiesto toho, Prejdite k položke zoznamu priradený súbor a získať súbory v priečinku.

</koniec>

Vyberajte môj blog!

Technorati Tags:

Ešte ďalší príjemca udalosti ladiť trik

Som si istý, že nie som prvý, kto prišiel s týmto. Avšak, Nevšimol som si niekto zverejniť trik ako je tento, pretože som začal venovať osobitnú pozornosť spoločenstva vlani v júli. Takže, Som myslel, že to tento tip rýchly a jednoduchý ladenia.

I 'm working on udalosť prijímač, ktorý začal vytvárať túto chybu v 12 úľ:

Chyba pri načítaní a beh udalostí prijímač Conchango.xyzzyEventReceiver v xyzzy minového, Verzia = 1.0.0.0, Kultúra = neutrálne, PublicKeyToken = blahbalhbalh. Ďalšie informácie sú pod. : Odkaz na objekt nie je nastavený na inštanciu objektu.

Nevedel som, kde mal zaviesť túto chybu, pretože mal urobiť príliš veľa vecí v jeden môj kód/nasadiť/skúšobných cyklov.

Snažil som sa Toto riešenie získať moje PNR tam s nádejou, že SharePoint 12 úľ by Zobraziť trasovanie zásobníka, ale nie šťastie. Neviem, ak je to možné, a ak niekto nemá, Dajte mi prosím vedieť 🙂

Viem, že je možné Napíšte svoj vlastný denník správ 12 úľ. Úprimne povedané, Chcel som niečo trochu menej desivé a rýchlejšie na vykonávanie.

Napadlo ma, že som mohol aspoň dostať niektoré základné stopových informácie chytať a re-hádzanie všeobecných výnimiek takhle:

  skúste {
    UpdateEditionDate(vlastnosti);
  }
  chytiť (Exception e)
  {
    throw nové Exception("Dispečer, UpdateEditionDate(): Exception: [" + e.ToString() + "].");
  }

To ukázal v 12 thusly úľ:

Chyba pri načítaní a beh udalostí prijímač Conchango.xyzzyEventReceiver v xyzzy minového, Verzia = 1.0.0.0, Kultúra = neutrálne, PublicKeyToken = blahblahblah. Ďalšie informácie sú pod. : Dispečer, UpdateEditionDate(): Exception: [System.NullReferenceException: Odkaz na objekt nie je nastavený na inštanciu objektu. v Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties vlastnosti) v Conchango.xyzzyManagementEventReceiver.Dispatcher(SPItemEventProperties vlastnosti, Reťazec eventDescription)].

To mi dal všetky detaily som potreboval vypátrať tejto konkrétny problém a očakávam používať to veľa do budúcna.

</koniec>

Vyberajte môj blog!

Roztok: SPQuery neprehľadáva priečinky

Minulý týždeň som sa vykonáva "vyvíja" riešenie pre klienta, ktorý využíva BDC a SPQuery a narazil na niektoré problémy s používaním SPQuery proti knižnice dokumentov, ktorá obsahuje priečinky. Sečteno podtrženo: priradiť "rekurzívne" atribút zobrazenia dotazu.

Môj scenár:

  • V pondelok, Nahrať dokument a poskytnúť nejaké meta údaje.
  • Nasledujúci týždeň, Nahrať nový dokument. Moc tento nový dokument meta údajov vychádza z dokumentov, ktoré som nahral v pondelok (ktorú nazývame "nadradený dokument").
  • Sme vytvorili webovú službu fasádou, ktorá poskytuje BDC-priateľské rozhranie do zoznamu tak, aby užívatelia mohli ľahko vyhľadať pondelok dokumentu prostredníctvom vyhľadávania na názov.
  • Stĺpec údajov BDC poskytuje priateľské užívateľské rozhranie. (Toto je časť môjho pokusu pomocou BDC šetrnejší vyhľadávacieho stĺpca).

Konečné fasádu služba BDC používa dotaz ako to urobiť vyhľadávanie:

 // Použité U2U nástroj na pomoc pri vytváraní dotazu CAML.
      oQuery.Query =
        "<Kde>";

      Ak (titleFilter.Length > 0)
        oQuery.Query  =
          "  <A>";

      oQuery.Query  =
        "    <A>" +
        "      <GEQ>" +
        "        <FieldRef meno =  "DocumentId" />" +
        "        <Typ hodnoty =  "Text">" + minId + "</Hodnota>" +
        "      </GEQ>" +
        "      <LEQ>" +
        "        <FieldRef meno =  "DocumentId" />" +
        "        <Typ hodnoty =  "Text">" + maxId + "</Hodnota>" +
        "      </LEQ>" +
        "    </A>";

      Ak (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Obsahuje>" +
          "      <FieldRef meno =  "Title" />" +
          "      <Typ hodnoty =  "Text">" + titleFilter + "</Hodnota>" +
          "    </Obsahuje>" +
          "  </A>";
      oQuery.Query  =
        "</Kde>";

V počiatočnej fáze vývoja, Táto skvelá pracoval. Avšak, sme zaviedli priečinky do adresára vyriešiť niektoré problémy a zrazu, môj výber BDC nechcel vrátiť žiadne výsledky. Sledoval som to tým, že SPQuery by sa nikdy nevráti žiadne výsledky. Použili sme priečinky predovšetkým umožniť viac súborov s rovnakým názvom byť nahraný, ale s rôznymi meta dáta. Keď sa súbor odovzdáva, vytvoríme priečinok na základe identifikácia položky zoznamu a potom premiestnite súbor tam (Napísal som o tom tu; mali sme zmiešané výsledky s týmto prístupom, ale na celom, to funguje dobre). Užívateľ nestarajú o priečinkoch a v skutočnosti, nechápe, že neexistujú žiadne priečinky. Sme nakonfigurovaný všetkých zobrazení knižnice na zobrazenie položiek bez ohľadu na priečinky.

Trafil som tento problém dvakrát ako technickú realizáciu vyvinul a vyriešil to inak zakaždým. Po prvýkrát, Nebol pomocou operátora obsahuje v dotaze. Bez toho, aby prevádzkovateľ obsahuje, Bol som schopný vyriešiť zadaním pohľad na SPQuery contructor. Namiesto použitia predvolený konštruktor:

SPList oList = web.Zoznamy["Dokumenty"];

SPQuery oQuery = nové SPQuery();

Namiesto toho použiť konštruktor uvedenej zobrazenie:

SPList oList = web.Zoznamy["Dokumenty"];

SPQuery oQuery = nové SPQuery(oList.Views["Všetky dokumenty"]);

Problém vyriešil a začal som sa dostať moje výsledky.

Následne sa pridá operátor obsahuje do mixu a to zlomil znova. Ukazuje sa, že obsahuje operátora, tak ďaleko, ako môžete povedať, nefunguje s názorom rovnakým spôsobom ako jednoduchšie GEQ / Prevádzkovatelia LEQ. Urobil nejaké vyhľadávanie a dozvedel, že atribúty zobrazenia dotazu by byť nastavená na "Rekurzívne", rovnako ako v:

oQuery.ViewAttributes = "Rozsah = "Recursive"";

Že problém vyriešil za obsahuje. v skutočnosti, to tiež môj pôvodný Hľadať problém vyriešený a ak mal špecifikovať rekurzívny atribút prvýkrát, Mám by nie bežať na otázku znova.

Skutočnosť, že view-založené SPQuery pracuje niekoľko prevádzkovateľov (GEQ/LEQ) a iné nie (OBSAHUJE), spolu s tým, že indikátory KPI nezdá sa pracovať vôbec priečinok obsahujúci dokument knižnice vedie mi veriť, že SPQuery má niektorí orthogonality problémy.

Osobitné poďakovanie:

  • Dobrý ľudí na U2U a nástroj ich dotazu.
  • Michael Hoffer veľký "učenie praxou" blogu, Komentáre a reakcie.

</koniec>

Vyberajte môj blog!

MOSS KPI chybu? Indikátorom zoznamu, ktoré sú viazané na knižnicu dokumentov s priečinkami

AKTUALIZÁCIA 02/29/08: Tento problém sa vyriešil vytvoriť priečinok a potom priradením určitého typu obsahu do priečinka, ktorý má meta dáta, ktoré potrebujem pre indikátory KPI. I ktoré popísaných v trochu podrobnejšie tu..

Zaviedli sme technické riešenie, kde užívatelia nahrať dokumenty do knižnice dokumentov. Príjemca udalostí vytvára adresár a presunie súbor do tohto adresára (použitím techniky podobné čo som napísal o tu). Sme úspešne prešli okolo potenciálne problémy spôsobené udalosť prijímače, ktoré premenovať nahrané súbory (hlavne preto, že používatelia nikdy spustiť ich dokumentu kliknutím na "nové" ale namiesto toho vytvoriť lokálne docs a potom nahrajte).

Meta data pre tieto dokumenty patria typu Yes/No stĺpec lokality s názvom "súrne" a ďalší stĺpec lokality s názvom "Stav". Musíme splniť obchodné požiadavky, aby sa zobrazuje percento "súrne" dokumenty, ktorých stav je "Až do".

To je zvyčajne jednoduché urobiť a já popísané niečo veľmi rád tento SharePoint Beagle s množstvom screenshotov if you're interested.

V skratke, Som urobil nasledujúce:

  • Vytvoriť zobrazenie v knižnici doc nazýva "Až do".
  • Konfigurovať pohľad ignorovať štruktúru priečinkov.
  • Vytvoriť zoznam indikátorov KPI.
  • Vytvorenie indikátora v zozname, ktorý poukazuje na doc lib a že "Čakajúce" zobrazenie.

To jednoducho nefunguje. Indikátor KPI ukazuje môj cieľ (napr.. päť urgentných písomností) ale vždy ukazuje skutočný počet naliehavých dokumentov ako nula. Paradoxne, Ak môžete zúžite podrobnosti, to ukazuje päť súrnych dokumentov v zozname. Som vytvoril veľmi jednoduchú scenár s dvoma dokumentmi, v priečinku a jeden nie. Tu je screen shot:

obrázok

Vyššie uvedený náhľad obrazovky jasne ukazuje, existujú dva dokumenty pohľadu však hodnotu"" je jedným. "CamlSchema" s prázdnym dokumentom Id je v koreňovom priečinku a druhá je v priečinku s názvom "84".

Zdá sa mi, že dokonca aj vtedy, keď určíte zobrazenie, indikátor KPI nemá cti "zobraziť všetky položky bez priečinkov" Nastavenie a namiesto, obmedzuje do koreňového priečinka.

Ak som zle, prosím kvapku mi čiary alebo zanechať komentár.

</koniec>

Vyberajte môj blog!

Technorati Tags:

Riešenie problému: “FileNotFoundException” S mojej funkcie prijímača.

Bol pracuje na funkciu minulý týždeň, že by pridať niektoré prijímače udalostí na osobitnom zozname stupňa. (Mám blogged trochu o tento prijímač zoznam tu).

Pomocou príkazového riadka, Som mohol nainštalovať funkciu bez chýb (ale pozrite sa nižšie skryté chyby). Keď som sa snažil zaviesť funkciu na mieste, MOSS sťažovali na "FileNotFoundException" chyba. Tento blogu opisuje, ako to vyriešil.

Je to chyba, že Mach mi ukázal vo webovom prehľadávači:

Funkcia "b2cb42e3-4f0a-4380-KacmarovaBlogy-1ef9cd526f20’ Nepodarilo sa nainštalovať, pretože načítanie zostavy príjemcu udalostí "xyzzyFeatureReceiver_0" zlyhalo: System.IO.FileNotFoundException: Nepodarilo sa načítať súbor alebo montáž "xyzzyFeatureReceiver_0’ alebo jedna z jeho závislostí. Systém nemôže nájsť zadaný súbor.
Názov súboru: "xyzzyFeatureReceiver_0’
v System.Reflection.Assembly.nLoad(AssemblyName fileName, Reťazec codeBase, Dôkaz assemblySecurity, Zostava locationHint, StackCrawlMark& stackMark, Logickú throwOnFileNotFound, Logickú forIntrospection)
v System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Dôkaz assemblySecurity, StackCrawlMark& stackMark, Logickú forIntrospection)
v System.Reflection.Assembly.InternalLoad(Reťazec assemblyString, Dôkaz assemblySecurity, StackCrawlMark& stackMark, Logickú forIntrospection)
v System.Reflection.Assembly.Load(Reťazec assemblyString)
v Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Montáž viazanie zapisovania do denníka je zapnutá OFF.
Povolenie zapisovania do denníka zhromaždenia viazať zlyhanie, nastaviť hodnotu databázy registry [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) na 1.
Poznámka: Tam je nejaký výkon trestu priradené zhromaždenia viazať zlyhanie zapisovania.
Ak chcete túto funkciu vypnúť, odstrániť hodnotu databázy registry [HKLMSoftwareMicrosoftFusion!EnableLog].

Riešenie problémov so službou Windows SharePoint Services.

Viem, ako zámerne spôsobiť chyby: Neinštalujte zhromaždenia v GAC. ale, bolo to v GAC. Normálne nainštalovať zostavy do GAC pretiahnutím do c:\windowsassembly zložky pomocou Prieskumníka windows. Nikdy som sa cítil 100% pohodlne robiť to, pretože som vždy myslel, že-gacutil, ktorý existoval dôvod … tak som sa snažil. Jedná sa žiadny rozdiel.

Hľadal internety a našiel tento post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Plagát nestalo používať rovnaký koreň trochu kódexu (z vnútri WSS knihy z tohto zoznamu) tak, aby bol nadějným znamením. Avšak, návrh zdobenie zhromaždenie s [montáž: ] smernica nedávalo zmysel pre mňa. Som skúsil som to a mal som pravdu. Jedná sa žiadny rozdiel.

Potom som si všimol, že moja definícia triedy nebol verejnosti. Som na verejnosť, a že sa žiadny rozdiel.

Ďalšie, Išiel som do problémov umožniť "zhromaždenie viazať zlyhanie log" (po užitočné a presné pokyny poskytnuté) a to je, kde sa veci začali získať zaujímavý. Že log mi ukazuje, že runtime vyhľadávanie všade na tomto serveri pre mojej zostavy. Dokonca zdá, že sa hľadá ju v mojom lekárničky. ale … to nebude hľadať to v GAC.

Dal na mojej Zimné bundy a ísť hľadať internety znova a nájsť, že niekto mal tento problém taky. Zdĺhavý diskusia v tomto vysielaní peters preč do nič a nemôže nájsť riešenie.

Som sa presunúť moje zhromaždenia do jedného z miest log tvrdí, je hľadanie a ja som trochu väčší pokrok. Odmenení nová chyba v prehľadávači, keď sa snažím aktivovať funkciu:

Nepodarilo sa vytvoriť objekt funkcia prijímač zo zostavy "xyzzyFeatureReceiver_0", typ "Conchango.xyzzyFeatureReceiver" pre funkciu b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Hodnota nemôže mať hodnotu null.
Názov parametra: typ
v System.Activator.CreateInstance(Typ, Boolovská neverejné)
v System.Activator.CreateInstance(Typ)
v Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Riešenie problémov so službou Windows SharePoint Services.

Čas na jeden posledný výlet do internety!

Tentoraz sa môžem dozvedieť, ako sa dalo očakávať dosť, MOSS vydáva túto chybu, pretože montáž nie je v GAC.

Chcem sa dostať niečo pozitívne z toho a snažte sa cítiť trochu hrdý, že ste vytvorili Utečenec MSIL zostáv, ale to nie je práca. Som naštvaný, proste. Som sa ocitol mručení "kura alebo vajce" pod mojím dychom.

Nakoniec sa rozhodnúť, aby punt. Môžem vytvoriť úplne nový projekt a kopírovať/vložiť kód z incredible-cloaked-from-the-GAC-assembly nepracujúcich projektu cez tento nový projekt. (Hľadám stavať vlajku s názvom niečo ako "skryť z montáže záväzné ak inštaláciu v GAC" ale nemôžem nájsť jeden).

Nainštalujte túto funkciu a aktivovať a … to funguje! Takže, po tom všetkom, Musel som sa v podstate "reštartovať’ môj projekt. To je ďalší dôvod, prečo neznášam počítačov.

Som sa dozvedel niečo užitočného z tohto. Boli mal inštaláciu funkcií pomocou príkazu stsadm celý deň a boli pomocou "-sila" možnosť zo zvyku. Z nejakého dôvodu, Nechcel použiť možnosť - force keď som nainštaloval nový projekt. tentoraz, Ja som vlastne, naozaj nezabudnite skopírujte tento nový projekt zhromaždenia do GAC. V dôsledku, Dostal som tento FielNotFoundException"" chyba. tentoraz, Dostal som ju od stsadm, nie, keď som sa snažil aktivovať funkciu cez webový prehliadač. Takže, -účinnosť vlastne hrá dve úlohy. To vám umožní opätovne nainštalovať existujúce funkcie. Umožňuje tiež nainštalovať funkciu kočík, ktorá nemôže pracovať v režime runtime potlačením chyba. Pravdepodobne hovorí toľko v Pomocníkovi niekde ale nikdy si všimol, že.

</koniec>

Technorati Tags: ,

Rýchle & Jednoduché: Premenovať nahraný súbor pomocou SharePoint objektový Model cez udalosti prijímač

AKTUALIZÁCIA: To funguje, ale existujú významné obmedzenia, ktoré sú opísané v poznámkach. To môže byť užitočné v niektorých okolnosti.

AKTUALIZÁCIA 2: V môj súčasný projekt, užívatelia vždy nahrať dokumenty. V dôsledku, Nechcem bežať do problému kde MS Word pracuje a myslí, že súbor bol premenovaný na to. Som naraziť na problém, "súbor bol zmenený iným používateľom" a riešiť to cez jednoduché semafor typu príznak. Používatelia musia zmeniť pole meta data z predvolenú hodnotu niečo iné. Itemupdated() prijímač vyhľadáva platnú hodnotu tam pred rezervujú premenovať a odvtedy, Nie som nemal žiadne problémy. Vaša najazdených kilometrov sa môžu líšiť.

Mám klienta požiadavka na zmenu názvu súbory nahrané do určitej knižnice dokumentov na dodržanie najmä konvencia. API neposkytuje premenovať"()" metóda. Namiesto toho, Používame "MoveTo(…)". Tu je trochu minimálne kódu na dosiahnutie tohto cieľa:

 verejné override neplatné ItemAdded(SPItemEventProperties vlastnosti)
        {
            Súbor SPFile f = vlastnosti.ListItem.File;

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

        }

Len záludné bit je "vlastnosti. ListItem.ParentList.RootFolder.Url". MoveTo() metóda vyžaduje adresu URL. Ktoré kaša sa reťazec bodov ma do koreňového priečinka moje súčasné knižnici dokumentov. To mi umožňuje vyhnúť akejkoľvek ťažko kódovanie v môj príjemca udalosti.

Je to oveľa užitočnejšie verziu, ktorá robí to isté, ale priradí názov súboru "Titul":

 verejné override neplatné ItemAdded(SPItemEventProperties vlastnosti)
        {
            DisableEventFiring();

            // Názov tejto položky priradiť názov súboru, samotný.
 // POZNÁMKA: Toto priradenie sa musí uskutočniť pred upravíme samotný súbor.
 // Volanie aktualizácie() na SPFile zdá narúšali vlastnosti
 // niektoré zmysel.  Zmenách v hlavy"" zlyhala, kým to zmeniť (a aktualizácia() hovor)
 // boli premiestnené pred zmenou názvu súboru.
            vlastnosti.ListItem[„Hlava"] = vlastnosti.ListItem.File.Name;

            vlastnosti.ListItem.Update();

            Súbor SPFile f = vlastnosti.ListItem.File;

            // Načítať príponu súboru.  Potrebujeme, že neskôr.
 reťazec spfileExt = nové FileInfo(f.name).Rozšírenie;

            // Premenujte súbor identifikácii položky zoznamu a používajú príponu udržať
 // časť neporušené.
            f.MoveTo(vlastnosti.ListItem.ParentList.RootFolder.Url +
                "/" + vlastnosti.ListItem["ID"] + spfileExt);

            // Zaviazať prechod.
            f.Update();

            EnableEventFiring();
        }

Rýchly Tip: Obsah webovej časti dotaz, Vyhľadávací stĺpec hodnotu a XSL

Môžem mať názov stĺpca v typu obsahu s názvom "Real Estate umiestnenie".

Tento stĺpec je typu „vyhľadávanie ”.

Boli upravené <CommonViewFields> a ItemStyle.xsl na zobrazenie stĺpca.

Jednoduchý <XSL:hodnoty z vyberte =…> vráti späť vnútornú hodnotu, ktorá zahŕňa údaje o radovej číslovky polohe, napríklad:

1;#Miami

Získať hodnotu ľudské priateľské, použitie xsl podreťazec po, ako je uvedené:

<XSL:hodnoty z vyberte = "podreťazec-po(@ Real_x005F_x0020_Estate_x005F_x0020_Location,’#’)"></XSL:hodnoty z>

Túto techniku použite vždy, keď pracujete s vyhľadávaním hodnotami v transformácie XSL a potrebujete získať hodnotu ľudské priateľské.

<koniec />

Technorati Tags: , ,

Rýchle a jednoduché: Určenie vnútorného stĺpca názov stĺpca lokality

AKTUALIZÁCIA: Jeremy Thake má blogged o tom a dať nejaké kód pre konzolovej aplikácie to ukazuje, že interné názvy.

Snažil som sa získať webovú časť dotaz na obsah zobrazíte dátum splnenia úlohy a pretože menovku obrazovky je "Dátum splatnosti", Predpokladal som, že názov stĺpca vo <CommonViewFields> je "Due_x0020_Date".

Zle!

Skutočné stĺpec meno bolo v tomto prípade "DueDate".

Ako to nájdem? Som re-čítať Heather Šalamúnov blog vstupe na zmenu CQWP Zobraziť ďalšie stĺpce údajov. Ona opisuje tento proces krok #13. Nedôveruje. Je to správne. Aspoň, to bolo správne pre mňa. Som neveril spočiatku na iný stĺpec s oveľa dlhším názvom.

Povedal som, "Trust" pretože neverili, že a pravdepodobne zbytočne v blízkosti dve hodiny zarábaní hlavou proti múru. Potom som sa rozhodol "DueDate" meno, Chcel som pridať ďalšie pole <CommonViewFields>. Pomocou techniky, Šalamún, Bol som dostať názov stĺpca ako "XYZ_x0020_Project_x0020_Due_x00".

Pomyslel som si, to je jasne skrátené meno. Išiel som dopredu a un-skrátený to bez úspechu. Použil som konečne zdanlivo skrátené meno a fungovalo to.

Bonus tip: Keď som pracoval s CQWP, e¹te bad vnútornej názov na <CommonViewFields>, CQWP by mi povedať, že mal dotaz žiadne výsledky. ale, Ak po pridaní typ údajov do poľa Názov, to by vrátiť výsledok. Pridanie údajov typu skutočne maskovaný problém pretože bola odkazovanie neexistujúce pole. Mohli by pridať, ale keď som sa snažil Zobraziť svoju hodnotu, Vždy by dostať prázdne.

To urobil nie je maska chýb:

<CommonViewFields>Due_x0020_Date;</CommonViewfields>

To urobil maska chyba:

<CommonViewFields>Due_x0020_Date,Dátum a čas;</CommonViewfields>

</koniec>