త్వరిత మరియు సులువు: SPItemList యొక్క SPFolder పొందండి

నేను మీరు ఏమి నేను ఈ సమస్య లోకి అమలులో ఉంచండి మరియు Google అర్థం ఉంది ఎప్పుడూ, కాబట్టి నేను ఈ వ్రాసి ఉంటుంది చిత్రవిచిత్రమైన.

నేను గత వారం లేదా రెండు ఈవెంట్ రిసీవర్ డీబగ్గింగ్ చాలా చేయడం పరిష్కరించగలుగుతున్నాము. 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, నేను దీని ID నాకు తెలుసు నిర్దిష్ట అంశం కోసం ఒక ఫోల్డర్ మెటాడేటా అప్డేట్ అవసరం.

ఇక్కడ కొద్దిగా కన్సోల్ ప్రయోగాన్ని వార్తలు (వ్యవసాయ లో సర్వర్ లో అమలు చేయడానికి రూపొందించబడింది) ఆ రెండు వాదనలు పడుతుంది: అంశం ID మరియు ఒక రంగంలో కు కేటాయించడానికి విలువ, "Approval Status". It hard codes a lot of stuff and has no error checking.

కోడ్ హార్డు కోడెడ్ సైట్ చూస్తుంది, 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.

ఎవరైనా విమర్శ అందించే లేదా అంశం ఫోల్డర్ పొందుటకు ఒక మంచి మార్గం సూచించారు అడిగే ఉంటే, ఒక వ్యాఖ్యను దయచేసి.

<కోడ్>
ఉపయోగించి వ్యవస్థ;
ఉపయోగించి System.Collections.Generic;
ఉపయోగించి System.Text;
ఉపయోగించి Microsoft.SharePoint;
ఉపయోగించి System.Collections;

నేంస్పేస్ Conchango
{
    /// <సంగ్రహము>
 /// </సంగ్రహము>
 తరగతి ManualFolderUpdate
    {
        స్థిరమైన రద్దు ప్రధాన(తీగ[] వాదనల)
        {
            తీగ msh = "ManualFolderUpdate (v1.0): "; // msh = "Message Header"

 మీటలు బిగించుకునే చెక్క.WriteLine(msh + "Starting up.  నేను గత 08/04/08 న చివరి మార్పు జరిగినది.");

            తీగ url = http://localhost/xyzzy;

            ఉపయోగించి (SPSite oSPSite = కొత్త SPSite(url))
            {

                ఉపయోగించి (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Documents"];

                    మీటలు బిగించుకునే చెక్క.WriteLine(msh + "Got the document library.");

                    మీటలు బిగించుకునే చెక్క.WriteLine(msh + "Doc lib item count: [" + docLib.ItemCount + "].");

                    Int FolderID = 0;
                    తీగ NewStatus = "xyzzy";

                    FolderID = వ్యవస్థ.రూపంలో మార్పు తెచ్చు.ToInt32(వాదనల[0].ToString());
                    మీటలు బిగించుకునే చెక్క.WriteLine("Seeking folder for item: [" + FolderID + "].");

                    SPListItem li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    మీటలు బిగించుకునే చెక్క.WriteLine(msh + "Got the parent folder.");

                    NewStatus = వాదనల[1].ToString();
                    మీటలు బిగించుకునే చెక్క.WriteLine("Setting status to [" + NewStatus + "].");

                    మీటలు బిగించుకునే చెక్క.WriteLine("Press return to commit the update or CTRL-C to abort.");

                    మీటలు బిగించుకునే చెక్క.ReadLine();

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

                    మీటలు బిగించుకునే చెక్క.WriteLine(msh + "Finished updating the folder.  నిష్క్రమించే.");

                } // SPWeb ఉపయోగించి

            } // SPSite ఉపయోగించి

 మీటలు బిగించుకునే చెక్క.WriteLine(msh + "Finished.");

        } // ప్రధాన

    } // తరగతి foldersync
} // నేంస్పేస్
</కోడ్>

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

ఒక Reply వదిలి

మీ ఇమెయిల్ చిరునామా ప్రచురితమైన కాదు. లు గుర్తించబడతాయి *