Kategorija Archives: SharePoint plėtros

Paprastas paaiškinimas: “Vertė nepatenka į tikėtiną intervalą.”

NAUJINIMAS: Anoniminis plakatą paliko didelę komentarą apie vidaus vardus. Įsitikinkite, kad skaityti.

Dirbant su renginio imtuvai ir kitu kodu, kuris nurodo SharePoint sąrašo elementus naudojantis objektų modeliu, Aš dažnai padaro klaidų, kad generuoti ši klaida vykdymo metu:

Klaida įkeliant ir veikia įvykio imtuvas Conchango.xyzzyEventReceiver xyzzy, Versija = 1.0.0.0, Kultūros = neutrali, PublicKeyToken = 0dc50a750396c3ac. Papildoma informacija yra žemiau. : Vertė nepatenka į tikėtiną intervalą.

Manau, kad tai yra gana bendro pobūdžio klaida, kad gali būti sukelia daug įvairių būdų. Tačiau, vienas paprastas paaiškinimas, kad aš esu nuorodų laukas neteisingai. Jei lauko pavadinimas yra "Termino", Aš turi nuoroda kaip šis įvykis imtuvas:

ypatybės.ListItem["Terminas"]

Kada aš rašybos arba naudoti neteisingai atveju kreipiantis į lauką, SharePoint generuoja pirmiau minėta klaida. Pvz., tai negerai:

ypatybės.ListItem["terminas"]

</pabaigos>

Prenumeruoti savo dienoraštį.

Technorati Tags:

Greitai & Lengvai: Sukurkite aplanką ir priskirkite turinio tipą (Arba, Ar jūsų KPI ir valgyti juos per)

Siekiant apeiti, KPI problemą Aš parašė apie tai čia, Aš kai tyrimai ir atrado kad KPI darbo prieš aplankus su meta duomenų taip pat, kad jie dirba prieš dokumentų ar sąrašo elementus. Man įrodoma jį kurdami naują turinio tipą atsižvelgiant į aplanko turinio tipą ir tada įtraukti kelis laukus. Aš sukūriau kai kurie rodikliai ir įrodė sau, kad KPI darbo, kaip tikėtasi. Tai sveikintinas Naujienos. It's not perfect, nes detalizavimas gausite iš KPI prieš aplankai yra ne visai ką nori. Tai nėra per daug trūkumas, mano atveju, nes 1) galutiniai vartotojai nežino nieko geresnio ir 2) detalizavimas eina į aplanką. Jie spustelėkite aplanko pavadinimą ir jie yra ne prekė. Tai dviem paspaudimais vietoj vieno, kuris nėra pasaulio pabaiga.

Šis lelija gražiai su darbu darau. Aš sukurti aplanką už kiekvieną dokumentą, kuris gauna įkelta. Tai daroma per renginį imtuvas. Todėl, tai vieni juokai laikytis, pirminio aplanko meta duomenų sinchronizavimo su KPI varoma metaduomenis iš failo pati vandentiekio, jau vietoje. This allows me to have my KPI’s and eat them too 🙂

Modifikavau atveju imtuvo pridėti aplanką ir tada mano užsakymą KPI šeimai turinio tipas nustatytas šio naujo aplanko turinio tipas. Šis kodas tiek pavyko:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Dokumentai").Poaplankiams;
  SPFolder addedFolder = srcFolders.Add(savybės.ListItem.ID.ToString());
  SPContentTypeId kpiCT = naujas SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Turinio tipo ID"] = kpiCT;
  addedFolder.Item.Update();

Norėdami rasti faktinį turinio tipo ID, Aš atvertas to turinio tipo per svetainės parametrai ir kopijuoti/įklijuoti jį iš URL kaip parodyta:

vaizdas

</pabaigos>

Prenumeruoti savo dienoraštį!

Technorati Tags: ,

Greitai ir lengvai: Gauti SPFolder SPListItem įvykio imtuvas

Aš nekenčiu priimti ji, bet aš kovojo su šita visą dieną. Mano atveju imtuvas turi būti atnaujinti savo pirminio aplanko lauke. Tai šiek tiek rodo, kaip tai padaryti:

privačių negalioja UpdateParentFolder(SPItemEventProperties ypatybės)
{

SPFolder thisItemFolder = savybes.ListItem.File.ParentFolder;
thisItemFolder.Item["ZZ patvirtinimo būsena"] = "Geros naujienos, Kiekvienas!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

Šiuo atveju, Aš dirbu su dokumentų biblioteka ir savybės ateina iš ItemAdded varžybų.

Pavyko tai, kad jūs negalite gauti SPFolder objekto tiesiai iš patį elementą (ty. savybės.ListItem.Folder yra neapibrėžtas). Vietoj, eikite į sąrašo elementą su failais ir gauti failo aplanką.

</pabaigos>

Prenumeruoti savo dienoraštį!

Technorati Tags:

Dar kitas įvykis imtuvas derinti Trick

Aš tikiu, kad aš ne pirmasis asmuo tai sugalvoti. Tačiau, Aš nepastebėjau kas skelbia vaikas kaip šis, nes aš pradėjau atkreipti ypatingą dėmesį į Bendrijos praėjusių metų liepą. Taigi, Aš maniau, I 'd post it podpowiedź greitai ir lengvai derinimo.

Aš dirbu dėl įvykio imtuvo, kuri ėmė kurti šią klaidą, kad 12 avilys:

Klaida įkeliant ir veikia įvykio imtuvas Conchango.xyzzyEventReceiver xyzzy, Versija = 1.0.0.0, Kultūros = neutrali, PublicKeyToken = blahbalhbalh. Papildoma informacija yra žemiau. : Objektas nuoroda nenustatyta objekto pavyzdžiui.

Aš žinau, kur aš įvedė šią klaidą nes aš turėjo padaryti labai daug dalykų viename iš mano kodas/diegimas/bandymo ciklų.

Aš bandžiau Šis tirpalas gauti mano PBP ten tikisi kad SharePoint 12 avilys rodytų bloko stebėjimą, bet ne laimė. Aš nežinau, jei tai įmanoma ir jei kas nors, Prašome leiskite man žinoti 🙂

Aš žinau, tai galima rašyti savo pranešimus prisijungti prie to 12 avilys. Atvirai, Aš norėjau kažką šiek tiek mažiau baisi ir greičiau įgyvendinti.

Jis įvyko man, kad ne mažiau kaip galėčiau gauti kai kurių pagrindinių sekimo informacija gaudyti ir vėl mesti bendro pobūdžio išimčių panašaus:

  pabandykite {
    UpdateEditionDate(ypatybės);
  }
  sugauti (Išimtis e)
  {
    mesti naujas Išimtis("Dispečeris, UpdateEditionDate(): Išimtis: [" + e.ToString() + "].");
  }

Tai parodė kad 12 avilys thusly:

Klaida įkeliant ir veikia įvykio imtuvas Conchango.xyzzyEventReceiver xyzzy, Versija = 1.0.0.0, Kultūros = neutrali, PublicKeyToken = blahblahblah. Papildoma informacija yra žemiau. : Siuntėjas, UpdateEditionDate(): Išimtis: [System.NullReferenceException: Objektas nuoroda nenustatyta objekto pavyzdžiui. ne Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties savybės) ne Conchango.xyzzyManagementEventReceiver.Dispatcher(SPItemEventProperties savybės, Eilutės eventDescription)].

Tai davė man detaliau man reikia stebėti tą konkrečią problemą ir aš tikėtis jį naudoti daug vyksta į priekį.

</pabaigos>

Prenumeruoti savo dienoraštį!

Tirpalas: SPQuery neieško aplankus

Praeitą savaitę buvau įgyvendinimo yra "vystosi" sprendimas dėl kliento, kuris naudoja BDC ir SPQuery ir įvažiavo į kai kurių sunkumų naudojant SPQuery nuo dokumentų biblioteką, kurioje aplankus. Bottom line: priskirti "rekursinis" Norėdami Rodyti atributas užklausos.

Mano scenarijus:

  • Pirmadienį, Aš įkelti dokumentą ir pateikti kai kurie meta duomenys.
  • Kitą savaitę, Aš įkelti naują dokumentą. Didžiąją šio naujo dokumento meta duomenys remiasi dokumento nusiunčiau pirmadienį (kurias mes vadiname "pagrindinio dokumento").
  • Mes sukūrėme interneto paslaugų fasadas, kuri suteikia BDC šeimai sąsają į sąrašą, kad vartotojai gali lengvai rasti šio pirmadienio dokumento per pavadinimo paieškos.
  • BDC duomenų stulpelio suteikia draugiška vartotojo sąsaja. (Tai yra dalis mano bandymas naudojant BDC draugiškai peržvalgos stulpeliui).

Galutinis BDC fasado paslauga naudoja užklausą kaip tai daryti peržvalgos:

 // Naudojama U2U priemonė padėti kuriant šį CAML užklausa.
      oQuery.Query =
        "<Tais atvejais, kai>";

      Jei (titleFilter.Length > 0)
        oQuery.Query   =
          "  <Ir>";

      oQuery.Query   =
        "    <Ir>" +
        "      <Geq>" +
        "        <FieldRef pavadinimas =  "DocumentId" />" +
        "        <Vertės tipas =  "Text">" + minId + "</Vertė>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <FieldRef pavadinimas =  "DocumentId" />" +
        "        <Vertės tipas =  "Text">" + maxId + "</Vertė>" +
        "      </Leq>" +
        "    </Ir>";

      Jei (titleFilter.Length > 0)
        oQuery.Query   =
          "    <Yra>" +
          "      <FieldRef pavadinimas =  "Title" />" +
          "      <Vertės tipas =  "Text">" + titleFilter + "</Vertė>" +
          "    </Yra>" +
          "  </Ir>";
      oQuery.Query   =
        "</Tais atvejais, kai>";

Per pradinės vystymosi stadijos, tai veikė puikiai. Tačiau, Mes pristatė aplankus į katalogą, išspręsti kai kurias problemas ir staiga, mano BDC picker nebūtų grąžinti jokių rezultatų. Sekant tai su tuo, kad į SPQuery niekada grįžti jokių rezultatų. Mes naudoja aplankus, visų pirma siekiant kelių failų tuo pačiu vardu į nusiunčiamų bet su skirtingų meta duomenų. Kai failas yra įkeltas, mes sukurti aplanką pagal sąrašo elemento ID ir tada perkelti failą ten (Aš parašė apie tai čia; Mes jau įvairi esant tokiam požiūriui, bet visą, jis veikia gerai). Vartotojo negalvoja apie aplankus ir iš tikrųjų, tikrai nesuprantu, kad nėra jokių aplankų. Mes sukonfigūruotas visuose rodiniuose bibliotekoje rodomi elementai neatsižvelgiant į aplankus.

Aš paspauskite šią problemą du kartus kaip techninis įgyvendinimas išsivystė ir išspręsta ji skirtingai kiekvieną kartą. Pirmą kartą, Aš ne naudojant jame yra operatorius užklausos. Be yra operatoriaus, Man pavyko išspręsti problemą, nurodant vaizdą į SPQuery contructor. Vietoj numatytojo konstruktoriaus:

SPList oList = interneto.Sąrašai["Dokumentai"];

SPQuery oQuery = naujas SPQuery();

Vietoj to aš konstruktorius nurodytas rodinys:

SPList oList = interneto.Sąrašai["Dokumentai"];

SPQuery oQuery = naujas SPQuery(oList.Views["Visus dokumentus"]);

Kad išspręsti šią problemą ir aš pradėjau gauti mano rezultatai.

Dodałem tada jame yra operatorius į mišinį ir ji sugedo vėl. Paaiškėja, kad jame yra operatorius, tiek, kiek aš galiu pasakyti, neveikia su mano taip pat, kaip ir paprastesnis GEQ / LEQ operatoriai. Aš kai paieškos ir sužinojau, kad užklausos ViewAttributes turi būti nustatyta kaip "Grįžtamojo", kaip ir:

oQuery.ViewAttributes = "Taikymo sritis = "Recursive"";

Kad išspręsti šią problemą, yra. tiesą sakant, Tai taip pat išspręsti mano originalus paieškos problema ir jei aš turėjo nurodyti rekursinis priskirti pirmą kartą, Aš būtų ne paleisti į klausimą dar kartą.

Tai, kad view pagrįstas SPQuery veikia kai kurie operatoriai (GEQ/LEQ) o ne kitiems (YRA), kartu su tuo, kad KPI neatrodo, kad darbas ne visą su aplanką, kuriame pateikta dokumentų bibliotekos veda mane manyti, kad SPQuery yra keletas orthogonality klausimų.

Ypatingą padėką:

  • Geri žmonės ne U2U ir jų užklausos įrankį.
  • Michael Hoffer Didžiosios "mokymo programų akreditacija" internetinio dienoraščio skelbiamą pranešimą, komentarus ir atsakymus.

</pabaigos>

Prenumeruoti savo dienoraštį!

SAMANŲ KPI re? Sąrašo rodiklis susijęs su dokumentų biblioteka su aplankais

NAUJINIMAS 02/29/08: Aš išspręsti šią problemą kuriant aplanką ir tada priskirti turinio tipą į aplanką, kuris yra meta duomenys man reikia KPI. Aš tai truputį išsamiau aprašyti čia.

Mes įdiegėme techninis sprendimas kur vartotojams įkelti dokumentus į dokumentų biblioteką. Renginio imtuvas sukuria katalogą ir perkelia failą į tą katalogą (naudojant panašus į ką aš apie technika čia). Mes sėkmingai navigacija iškilti problemas sukelia įvykis imtuvus ir pervardyti įkeltiems failams (daugiausia todėl, kad vartotojai niekada pradėti savo dokumente paspaudę ant "naujas" bet vietoj to sukurti dokumentai vietoje ir tada siųsti juos).

Šių dokumentų meta duomenys apima taip/ne svetainės stulpelį pavadinimu "skubu" ir kitoje svetainės skiltyje vadinamas "Statusas". Mes turime susitikti verslo reikalavimas, kad rodo, kiek procentų "skubu" dokumentai, kurių būsena yra "Laukiama".

Tai paprastai lengva padaryti ir aš kažką labai panašaus ne SharePoint Biglis su daug ekrano nuotraukų, jei jus domina.

Trumpai, Aš taip:

  • Kurti rodinį, vadinamas "Kol" doc bibliotekoje.
  • Konfigūruoti Rodyti ignoruoti aplankų struktūra.
  • Sukurti KPI sąrašą.
  • Kurti indikatorių sąraše, rodo, kad doc lib ir kad "kol" Rodyti.

Tai tiesiog neveikia. KPI rodo mano tikslas (pvz.. penki skubių dokumentų) bet visada rodo faktinį skaičių skubių dokumentų kaip nulį. Paradoksalu, Jei jūs pasirinkite detales, tai rodo penki skubių dokumentų sąraše. Aš sukūriau labai paprastas scenarijus su dviem dokumentais, vieną aplanką ir vienas ne. Čia yra ekrano fotografiją:

vaizdas

Pirmiau minėtame ekrano fotografiją aiškiai rodo, nėra dviejų dokumentų vaizdas bet "vertė" yra vienas. "CamlSchema" tuščio dokumento Id yra Šakniniame aplanke ir kita yra pavadinami "84".

Man regis, kad net jei jūsų nurodytas rodinys, KPI nėra garbės į "Rodyti visus elementus be aplankus" nustatymas ir vietoj, apsiriboja šakninis aplankas.

If I 'm wrong, prašome rašykite man arba palikite komentarą.

</pabaigos>

Prenumeruoti savo dienoraštį!

Technorati Tags:

Problemos sprendimas: “FileNotFoundException” Su mano funkcijų gaviklį.

Aš dirbau funkcija praeitą savaitę, kuri būtų pridėti kai kurios įvykio imtuvai prie konkretaus sąrašo egzemplioriaus. (Aš blogų šiek tiek apie tą sąrašą imtuvas čia).

Naudodami komandų eilutę, Aš galėtų įdiegti funkciją be klaidos (bet apačioje galite rasti paslėptus klaida). Kai aš bandžiau įdiegti funkciją svetainėje, SAMANŲ skundėsi "FileNotFoundException" klaida. Šio dienoraščio įrašas apibūdina kaip aš ją spręsti.

Tai yra klaida, kad MOSS parodė man naršyklėje:

Funkcija "b2cb42e3-4f0a-4380-Goda-1ef9cd526f20’ gali būti įdiegta, nes pakrovimo iki renginio rinkinio "xyzzyFeatureReceiver_0" Nepavyko: System.IO.FileNotFoundException: Nepavyko įkelti failo arba surinkimas "xyzzyFeatureReceiver_0’ arba vienas iš jam priklausančiųjų. Sistema negali rasti nurodyto failo.
Failo vardas: "xyzzyFeatureReceiver_0’
ne System.Reflection.Assembly.nLoad(AssemblyName failo vardas, Styginių Mac os x, Įrodymų assemblySecurity, Asamblėjos locationHint, StackCrawlMark& stackMark, Bulio logikos throwOnFileNotFound, Bulio logikos forIntrospection)
ne System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Įrodymų assemblySecurity, StackCrawlMark& stackMark, Bulio logikos forIntrospection)
ne System.Reflection.Assembly.InternalLoad(Eilutės assemblyString, Įrodymų assemblySecurity, StackCrawlMark& stackMark, Bulio logikos forIntrospection)
ne System.Reflection.Assembly.Load(Eilutės assemblyString)
ne Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Asamblėjos privalomas registravimas yra įjungtas, išjungtas.
Kad būtų galima Asamblėja jungiasi nepavyko prisijungti, nustatyti registro reikšmė [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) į 1.
Pastaba: Yra kai kurie atlikti bausmę, susijusios su surinkimo susieti nepavyko prisijungti.
Norėdami šią funkciją išjungti, pašalinti registro reikšmė [HKLMSoftwareMicrosoftFusion!EnableLog].

Šalinkite triktis naudodami Windows SharePoint Services.

Aš žinau, kaip sąmoningai sukelti tos klaidos: Nediekite Asamblėja GAC. bet, tai buvo GAC. Aš paprastai įdiegti rinkinius į GAC vilkdami juos į c:\windowsassembly katalogą naudojant windows explorer. Aš niekada nesijaučiau 100% patogus darysim, nes aš visada maniau, kad gacutil egzistuoja priežasties … Taigi, aš bandžiau, kad. Nėra jokio skirtumo.

Aš ieškojote internetas ir rasti šį pranešimą: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Plakato teko naudoti į patį šaknis šiek tiek kodas (iš viduje WSS knygos iš šio sąrašo) Taigi tai buvo vilties ženklas. Tačiau, dekoravimo asamblėjai, pateikdama pasiūlymą dėl [Asamblėja: ] direktyvoje nėra prasmės man. Aš bandžiau ją vistiek ir aš buvau teisus. Nėra jokio skirtumo.

Tada aš pastebėjau, kad mano klasės apibrėžimas nebuvo viešųjų. Aš tai viešai, ir kad nėra jokio skirtumo.

Kitas, Nuėjau į bėdą leidžia "surinkimo susieti gedimo žurnalą" (po naudinga ir tikslūs nurodymai pateikė) ir tai, kur daiktai pradėjo gauti įdomių. Kad žurnalas rodo man, kad vykdyklės visur ieško to serverio mano montavimui. Net atrodo, kad būtų ieškoti tai mano medicinos kabinetas. bet … jis nebus ieškoti GAC.

Aš įdėti mano žiemos striukė ir eiti ieškoti internetas vėl ir rasti, kad kažkas turėjo šią problemą per. Ilga diskusija, kad registravimo peters ne į nieko ir aš negaliu rasti išeitį.

Aš perkelti mano surinkimas į vieną žurnalą teigia jis ieško ir aš šiek tiek daugiau pažangos vietų. Aš esu atlyginta su naujų klaidų naršyklėje kai bandau įjungti funkciją:

Nepavyko sukurti funkcija imtuvas objekto iš rinkinio "xyzzyFeatureReceiver_0", Įveskite "Conchango.xyzzyFeatureReceiver" dėl funkcija b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Reikšmė negali būti nulinė.
Parametro pavadinimas: tipo
ne System.Activator.CreateInstance(Tipo tipo, Bulio logikos nonPublic)
ne System.Activator.CreateInstance(Tipo tipo)
ne Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Šalinkite triktis naudodami Windows SharePoint Services.

Laiko viena paskutinė kelionė į internetas!

Šį kartą aš sužinoti, tikėtis pakankamai, kad MOSS klausimai ši klaida nes Asamblėja nėra GAC.

Noriu ką nors teigiamo iš šios ir Stenkis, šiek tiek didžiuojuosi, kad aš sukūriau su Bėglys, MSIL mazgai, bet jis neveikia. Aš esu tik paprastas annoyed. Manau, pats Mamroczący "vištienos ar kiaušinis" pagal mano kvėpavimas.

Aš pagaliau nuspręsti kamuolio išmušimas iš rankų. Sukurti visiškai naują projektą ir kopijuoti/įklijuoti kodą iš incredible-cloaked-from-the-GAC-assembly ne darbo projektas per šį naują projektą. (Aš ieškoti statyti vėliava vadinamas kažką panašaus į "slėpti nuo surinkimo privalomas Jei įdiegta GAC" bet negali rasti).

Aš įdiegti funkciją ir ją aktyvuoti ir … jis veikia! Taigi, Galų gale, kad, Man teko iš esmės "perkrauti’ mano projektas. Tai dar viena priežastis, kodėl aš nekenčiu kompiuterių.

Aš sužinojau kažką naudingo iš šio. Aš turėjo buvo diegiamos funkcijos naudojant stsadm komandinės eilutės visą dieną ir buvo naudojant su "-jėga" galimybė iš įpročio. Dėl tam tikrų priežasčių, I didn't naudoti-force parinktį įdiegus naują projektą. šį kartą, Aš iš tikrųjų, tikrai pamiršti kopijuoti šį naują projektą surinkimas į GAC. Todėl, Aš gavau tą "FielNotFoundException" klaida. šį kartą, Aš tai iš stsadm, ne tada, kai aš bandžiau aktyvuoti funkciją per interneto naršyklę. Taigi, -pajėgos iš tikrųjų vaidina du vaidmenis. Ji leidžia iš naujo įdiegti esamos funkcijos. Ji taip pat leidžia įdiegti buggy funkcija, kuri negali darbo vykdymo metu slopina klaida. Ji tikriausiai sako kiek žinyne kažkur, bet aš niekada pastebėjau.

</pabaigos>

Technorati Tags: ,

Greitai & Lengvai: Pervardyti įkelti failą naudodami SharePoint objekto modelio per įvykio imtuvas

NAUJINIMAS: Tai veikia bet yra didelių trūkumų, kurios yra apibūdintos komentarus. Tai vis dar gali būti naudinga, kai kurių aplinkybių.

NAUJINIMAS 2: Į mano dabartinis projektas, vartotojai visada nusiųsti dokumentų. Todėl, Aš ne paleisti į problemų kur MS Word veikia ir mano, kad failas buvo pervardytas į jį. Aš paleisti į problemų, "failas buvo pakeistas kažkas" ir išspręsti tai per paprastas semaforo tipo vėliava. Vartotojams reikia pakeisti meta duomenų lauką numatytąją reikšmę į ką nors kita. Į itemupdated() imtuvas ieško galioja vertės, prieš atlikdami, pervardyti ir nuo tada, Aš neturėjo jokių problemų. Jūsų rida gali skirtis.

Turiu klientas reikalavimas pakeisti failus įkelti į konkrečią dokumentų biblioteką įtaisai atitinka ypač įvardijimo. API nepateikia "pervardyti()" metodas. Vietoj, Mes naudojame "MoveTo(…)". Čia yra šiek tiek minimalus kodas tai pasiekti:

 visuomenės Nepaisyti negalioja ItemAdded(SPItemEventProperties ypatybės)
        {
            SPFile f = ypatybės.ListItem.File;

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

        }

Tik sudėtinga bitas yra "savybes. ListItem.ParentList.RootFolder.Url". Į MoveTo() metodui reikia URL. Kad koše iki eilutės taškų mane į šakninį aplanką mano dabartinis dokumentų bibliotekos. Tai leidžia man išvengti bet sunku kodavimo mano atveju imtuvas.

Tai yra daugiau naudinga versija, kad daro tą patį, Tačiau priskiria failo pavadinimą "Title":

 visuomenės Nepaisyti negalioja ItemAdded(SPItemEventProperties ypatybės)
        {
            DisableEventFiring();

            // Šio elemento pavadinimas priskirti pačios rinkmenos pavadinimas.
 // PASTABA: Šiame pavedime turi vykti, prieš mes pakeisti pačiame faile.
 // Raginama atnaujinti() dėl to SPFile atrodo, kad pripažinti negaliojančiais ypatybės
 // tam tikra prasme.  Atnaujinimus į "pavadinimas" nepavyko tol, kol kad pakeisti (ir atnaujinti() skambinti)
 // buvo perkelta prieš pakeisti į failo vardas.
            ypatybės.ListItem["Pavadinimas"] = ypatybės.ListItem.File.Name;

            ypatybės.ListItem.Update();

            SPFile f = ypatybės.ListItem.File;

            // Gauti failo plėtinys.  Mums reikia, kad vėliau.
 eilutė spfileExt = naujas FileInfo(f.name).Pratęsimas;

            // Pervardykite failą į sąrašo elemento ID ir tvarkyti naudoja failo plėtinį
 // kad jo neapgadinto laivo dalis.
            f.MoveTo(ypatybės.ListItem.ParentList.RootFolder.Url +
                "/" + ypatybės.ListItem["ID"] + spfileExt);

            // Įsipareigoti perkelti.
            f.Update();

            EnableEventFiring();
        }

Greitas Patarimas: Turinio užklausos žiniatinklio dalis, Peržvalgos stulpelio reikšmė ir XSL

Turiu stulpelio pavadinimą, turinio tipe, pavadintas "Nekilnojamojo turto vietą".

Kad skiltis yra tipo "peržvalgos".

Aš pakeitė <CommonViewFields> bei ItemStyle.xsl Rodyti stulpelį.

Paprasta <XSL:vertė, pasirinkite =…> Grąžina atgal vidaus vertę, kuri apima Ordinalioji balanso duomenų, pvz.:

1;#Miami

Gauti žmogaus draugiškas vertė, naudoti xsl parametras-po, kaip parodyta:

<XSL:( @Real_x005F_x0020_Estate_x005F_x0020_Location, '#') ">< / xsl:vertė >(@Real_x005F_x0020_Estate_x005F_x0020_Location,’#’)"></XSL:vertė>

Naudoti šį metodą, kai dirbate su XSL transformacijos verčių peržvalgos ir reikia gauti žmogaus draugiškas vertė.

<pabaigos />

Technorati Tags: , ,

Greitai ir lengvai: Nustatyti vidaus stulpelio pavadinimas svetainės stulpelio

NAUJINIMAS: Jeremy Thake turi blogų apie tai ir kai kuriuos konsolės programą, kodas tai rodo vidaus pavadinimai.

Aš bandė gauti turinio užklausos žiniatinklio dalyje Rodyti terminą iš užduotį ir nes ekrano etiketė yra "Termino", Aš manyti, kad stulpelio pavadinimas naudoti <CommonViewFields> yra "Due_x0020_Date".

Negerai!

Reali stulpelio pavadinimas šiuo atveju buvo "DueDate".

Kaip man jį rasti? Aš dar kartą perskaityti Heather Saliamono dienoraščio įrašas dėl keisti CQWP Rodyti papildomus stulpelius duomenų. Ji aprašo šio proceso etape #13. Pasitikėti. Jis yra teisingas. Ne mažiau kaip, ji buvo teisinga man. Aš nepasitikėjo jį iš pradžių dėl kito stulpelio su daug ilgesnį pavadinimą.

Sakau "pasitikėti" nes jis nepasitikėjo ir tikriausiai švaistomi ir į jį – dvi valandas Wtrącanie galvą prieš sienos. Po to, kai aš išspręsti "DueDate" vardas, pavadinimas, Aš norėjau įdėti kitą lauką <CommonViewFields>. Naudojant Saliamono technika, Aš gaunu stulpelio pavadinimą kaip "XYZ_x0020_Project_x0020_Due_x00".

Aš maniau, kad aš, tai akivaizdžiai sutrumpintas pavadinimas. Nuėjau į priekį ir JT sutrumpintas jis nepadėjo. Pagaliau aš pažiūros sutrumpintas pavadinimas ir jis dirbo.

Bonus Patarimas: Kai aš dirbau su į CQWP, Jei dodałem blogai vidaus pavadinimas <CommonViewFields>, į CQWP būtų man, kad užklausa buvo grąžino jokių rezultatų. bet, Jei dodałem duomenų tipo lauko pavadinimas, ji sugrįš rezultatas. Pridedant duomenų tipą iš tikrųjų užmaskuotas problema nes buvau su nuoroda neegzistuoja lauką. Aš gali pridėti jį, bet kai aš bandė vertei pavaizduoti., Aš visada gauti tuščią.

Tai padarė ne maskuoti klaida:

<CommonViewFields>Due_x0020_Date;</CommonViewfields>

Tai padarė kaukė klaida:

<CommonViewFields>Due_x0020_Date,Data ir laikas;</CommonViewfields>

</pabaigos>