Mabilis at madali: Kumuha ng SPFolder SPItemList

Ako patuloy na tumatakbo papunta sa problemang ito at ang Google ay hindi mukhang upang maunawaan kung ano ang gusto kong gawin, kaya naisip ko na gusto kong isulat ito pababa.

Ko ang paggawa ng maraming kaganapan receiver pag-debug sa huling linggo o dalawang. The ER is defined against a document library. The individual items in the document library are tightly related to their parent folders. Kaya, I am always getting the folder of the item for various manipulations. While debugging, Kailangan ko upang i-update ang metadata ng isang folder para sa isang partikular na item na ang ID alam ko.

Narito ang isang maliit na application console (dinisenyo upang tumakbo sa mga server sa sakahan) na tumatagal ng dalawang argumento: ang ID ng item at isang halaga upang italaga sa isang field, "Approval Status". It hard codes a lot of stuff and has no error checking.

Ang code ay kamukha up ng isang hard-code na 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.

Kung sinuman ang nagmamalasakit upang mag-alok ng isang pumupuna o magmungkahi ng isang mas mahusay na paraan upang makuha ang folder ng isang item, mangyaring mag-iwan ng komento.

<kodigo>
paggamit Sistema;
paggamit System.Collections.Generic;
paggamit System.Text;
paggamit Microsoft.SharePoint;
paggamit System.Collections;

namespace Conchango
{
    /// <buod>
 /// </buod>
 klase ManualFolderUpdate
    {
        statik walang bisa Pangunahin(pisi[] args)
        {
            pisi msh = "ManualFolderUpdate (v1.0): "; // msh = "Message Header"

 Mag-aliw.WriteLine(msh + "Starting up.  Huling ako ay binago sa 08/04/08.");

            pisi url = http://localhost/xyzzy;

            paggamit (SPSite oSPSite = bago SPSite(url))
            {

                paggamit (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Documents"];

                    Mag-aliw.WriteLine(msh + "Got the document library.");

                    Mag-aliw.WriteLine(msh + "Doc lib item count: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    pisi NewStatus = "xyzzy";

                    FolderID = System.Magpasampalatya.ToInt32(args[0].ToString());
                    Mag-aliw.WriteLine("Seeking folder for item: [" + FolderID + "].");

                    SPListItem li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Mag-aliw.WriteLine(msh + "Got the parent folder.");

                    NewStatus = args[1].ToString();
                    Mag-aliw.WriteLine("Setting status to [" + NewStatus + "].");

                    Mag-aliw.WriteLine("Press return to commit the update or CTRL-C to abort.");

                    Mag-aliw.ReadLine();

                    thisItemFolder.Item["Approval Status"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Mag-aliw.WriteLine(msh + "Finished updating the folder.  Lumalabas.");

                } // gamit SPWeb

            } // gamit SPSite

 Mag-aliw.WriteLine(msh + "Finished.");

        } // Pangunahin

    } // class na foldersync
} // namespace
</kodigo>

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags:

-Iwan ng sagot

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan *