Pantas dan Mudah: Mendapat SPFolder daripada SPItemList

Saya terus berjalan ke dalam masalah ini dan Google tidak pernah seolah-olah memahami apa yang saya mahu lakukan, Jadi saya digambarkan saya menulis ini ke bawah.

Saya telah melakukan banyak acara penerima penyahpepijatan dalam minggu lepas atau dua. ER ditakrifkan terhadap sebuah perpustakaan dokumen. Item individu dalam Perpustakaan dokumen ketat berkaitan dengan folder induk mereka. Jadi, Aku selalu gettin folder item untuk tidak pelbagai. Manakala penyahpepijatan, Saya diperlukan untuk mengemaskini metadata folder item tertentu yang ID yang saya tahu.

Berikut adalah sedikit konsol permohonan (direka untuk menggunakan pelayan di dalam ladang) yang memerlukan dua hujah: ID item dan bernilai untuk menguntukkan kepada bidang yang, "Kelulusan Status". Ia sukar kod banyak hal dan mempunyai ralat tanpa menyemak.

Kod kelihatan sehingga tapak keras dikodkan, mendapat sebuah perpustakaan dokumen keras dikodkan dan kemudian mencari perkara yang dinyatakan. Ia kemudian mendapati folder induk perkara itu dan pemegang serah hak nilai status.

Pengajaran penting di sini untuk saya adalah bahawa SPItem tidak mendapatkan anda akses ke folder. Anda perlu menggunakan SPListItem.File.

Jika sesiapa yang peduli kritikan yang menawar atau mencadangkan cara yang lebih baik untuk mendapatkan folder item, sila tinggalkan komen.

<Kod>
menggunakan Sistem;
menggunakan System.Collections.Generic;
menggunakan System.Text;
menggunakan Microsoft.SharePoint;
menggunakan System.Collections;

ruang nama Conchango
{
    /// <Ringkasan>
 /// </Ringkasan>
 kelas ManualFolderUpdate
    {
        statik membatalkan Utama(rentetan[] args)
        {
            rentetan msh = "ManualFolderUpdate (v1.0): "; // msh = "pengepala mesej"

 Konsol.WriteLine(msh + "Bermula.  Saya kali terakhir dikemaskini pada 08/04/08.");

            rentetan URL = http://localhost/xyzzy;

            menggunakan (SPSite oSPSite = baru SPSite(url))
            {

                menggunakan (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Dokumen-dokumen"];

                    Konsol.WriteLine(msh + "Mendapat Perpustakaan dokumen.");

                    Konsol.WriteLine(msh + "Doc lib kiraan butiran: [" + docLib.ItemCount + "].");

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

                    FolderID = sistem.Menukar.ToInt32(args[0].ToString());
                    Konsol.WriteLine("Mencari folder untuk item: [" + FolderID + "].");

                    SPListItem Li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li. File.ParentFolder;

                    Konsol.WriteLine(msh + "Mendapat folder induk.");

                    NewStatus = args[1].ToString();
                    Konsol.WriteLine("Status persekitaran untuk [" + NewStatus + "].");

                    Konsol.WriteLine("Tekan kembali untuk melakukan update atau CTRL-C untuk menggugurkan.");

                    Konsol.ReadLine();

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

                    Konsol.WriteLine(msh + "Selesai mengemaskini folder.  Keluar.");

                } // menggunakan SPWeb

            } // menggunakan SPSite

 Konsol.WriteLine(msh + "Selesai.");

        } // Utama

    } // kelas foldersync
} // ruang nama
</Kod>

</akhir>

Langgan ke blog saya.

Technorati Tags:

Tinggalkan Jawapan

alamat e-mel anda tidak akan diterbitkan. Ruangan yang diperlukan ditanda *