איך האַלטן פליסנדיק אין דעם פּראָבלעם און די גוגל קיינמאָל מיינט צו פֿאַרשטיין וואָס איך ווילן צו טאָן, אַזוי איך פיגיערד איך וואָלט שרייַבן דעם אַראָפּ.
איך ווע שוין טאן אַ פּלאַץ פון געשעעניש ופנעמער דיבאַגינג אין די לעצטע וואָך אָדער צוויי. The ER is defined against a document library. The individual items in the document library are tightly related to their parent folders. אַזוי, I am always getting the folder of the item for various manipulations. While debugging, איך דארף צו דערהייַנטיקן די מעטאַדאַטאַ פון אַ טעקע פֿאַר אַ ספּעציפיש נומער וועמענס שייַן איך וויסן.
דאָ ס אַ ביסל קאַנסאָול אַפּלאַקיישאַן (דיזיינד צו לויפן אויף סערווער אין די פאַרם) וואָס נעמט צוויי טענות: די שייַן פון אַ נומער און אַ ווערט צו באַשטימען צו אַ פעלד, "Approval Status". It hard codes a lot of stuff and has no error checking.
The code looks up a hard coded site, gets a hard coded document library and then finds the indicated item. It then finds the parent folder of that item and assigns the status value.
The key lesson here for me is that SPItem doesn’t get you access to the folder. You need to use SPListItem.File.
If anyone cares to offer a critique or suggest a better way to get the folder of an item, ביטע לאָזן אַ באַמערקונג.
<code>
ניצן סיסטעם; ניצן סיסטעמ.קאָללעקטיאָנס.גענעריק; ניצן סיסטעמ.טעקסט; ניצן Microsoft.SharePoint; ניצן סיסטעמ.קאָללעקטיאָנס; נאָמענטייל קאָנטשאַנגאָ { /// <קיצער> /// </קיצער> קלאַס ManualFolderUpdate { סטאַטיק פּאָסל הויפּט(שטריקל[] אַרגס) { שטריקל msh = "ManualFolderUpdate (v1.0): "; // msh = "Message Header" קאַנסאָול.ווריטעלינע(msh + "Starting up. I was last modified on 08/04/08."); שטריקל url = http://localhost/xyzzy; ניצן (ספּסיטע oSPSite = נייַ ספּסיטע(URL)) { ניצן (ספּוועב oSPWeb = oSPSite.OpenWeb()) { ספּליסט docLib = oSPWeb.Lists["Documents"]; קאַנסאָול.ווריטעלינע(msh + "Got the document library."); קאַנסאָול.ווריטעלינע(msh + "Doc lib item count: [" + docLib.ItemCount + "]."); ינט FolderID = 0; שטריקל נעווסטאַטוס = "xyzzy"; פאָלדעריד = סיסטעם.גער.טאָינט32(אַרגס[0].טאָסטרינג()); קאַנסאָול.ווריטעלינע("Seeking folder for item: [" + פאָלדעריד + "]."); ספּליסטיטעם לי = דאָקליב.געטיטעמבייד(פאָלדעריד); ספּפאָלדער טהיסיטעמפאָלדער = לי.פילע.פּאַרענטפאָלדער; קאַנסאָול.ווריטעלינע(msh + "Got the parent folder."); נעווסטאַטוס = אַרגס[1].טאָסטרינג(); קאַנסאָול.ווריטעלינע("Setting status to [" + נעווסטאַטוס + "]."); קאַנסאָול.ווריטעלינע("Press return to commit the update or CTRL-C to abort."); קאַנסאָול.רעאַדלינע(); טהיסיטעמפאָלדער.יטעם["Approval Status"] = נעווסטאַטוס; טהיסיטעמפאָלדער.יטעמ.ופּדאַטע(); קאַנסאָול.ווריטעלינע(msh + "Finished updating the folder. עקסיטינג."); } // ניצן ספּוועב } // ניצן ספּסיטע קאַנסאָול.ווריטעלינע(msh + "Finished."); } // הויפּט } // קלאַס פאָלדערסינק } // נאָמענטייל
</code>
</עק>