Nhanh chóng và dễ dàng: Nhận được SPFolder của SPItemList

Tôi tiếp tục chạy vào vấn đề này và Google không bao giờ có vẻ để hiểu những gì tôi muốn làm, Vì vậy tôi figured tôi sẽ viết thư này.

Tôi đã làm rất nhiều sự kiện nhận gỡ lỗi trong tuần trước hoặc hai. Phòng cấp cứu được định nghĩa với một thư viện tài liệu. Các mục riêng lẻ trong thư viện tài liệu có liên quan chặt chẽ đến các thư mục phụ huynh. Vì vậy, Tôi luôn luôn nhận được thư mục cho các thao tác. Trong khi gỡ lỗi, Tôi cần thiết để cập nhật các siêu dữ liệu của một thư mục cho một mục cụ thể mà ID tôi biết.

Đây là một chút giao diện điều khiển ứng dụng (được thiết kế để chạy trên các máy chủ trong trang trại) mà phải mất hai đối số: ID của một mục và một giá trị để gán cho một lĩnh vực, "Trạng thái phê duyệt". Nó cứng mã rất nhiều thứ và đã không kiểm tra lỗi.

Mã nhìn lên một trang web cứng mã hoá, được một thư viện tài liệu cứng mã hoá và sau đó tìm thấy mục chỉ định. Nó sau đó tìm thấy thư mục chính của mục đó và gán giá trị trạng thái.

Bài học quan trọng đối với tôi là SPItem không nhận được bạn truy cập vào thư mục. Bạn cần phải sử dụng SPListItem.File.

Nếu bất cứ ai quan tâm để cung cấp một phê phán hoặc đề nghị một cách tốt hơn để có được vào thư mục của một mục, Xin vui lòng để lại một thảo luận.

<Mã>
bằng cách sử dụng Hệ thống;
bằng cách sử dụng System.Collections.Generic;
bằng cách sử dụng System.Text;
bằng cách sử dụng Microsoft.SharePoint;
bằng cách sử dụng System.Collections;

không gian tên Conchango
{
    /// <tóm tắt>
 /// </tóm tắt>
 lớp học ManualFolderUpdate
    {
        tĩnh void Chính(chuỗi[] args)
        {
            chuỗi MSH = "ManualFolderUpdate (v1.0): "; // MSH = "tin nhắn tiêu đề"

 Giao diện điều khiển.WriteLine(MSH + "Bắt đầu lên.  Tôi lần cuối ngày 08/04/08.");

            chuỗi URL = http://localhost/xyzzy;

            bằng cách sử dụng (SPSite oSPSite = mới SPSite(URL))
            {

                bằng cách sử dụng (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    Splist.Update() docLib = oSPWeb.Lists["Tài liệu"];

                    Giao diện điều khiển.WriteLine(MSH + "Có thư viện tài liệu.");

                    Giao diện điều khiển.WriteLine(MSH + "Doc lib mục tính.: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    chuỗi NewStatus = "xyzzy";

                    FolderID = hệ thống.Chuyển đổi.ToInt32(args[0].ToString());
                    Giao diện điều khiển.WriteLine("Tìm kiếm thư mục cho các mục: [" + FolderID + "].");

                    SPListItem Li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Giao diện điều khiển.WriteLine(MSH + "Có cặp cha mẹ.");

                    NewStatus = args[1].ToString();
                    Giao diện điều khiển.WriteLine("Thiết lập tình trạng để [" + NewStatus + "].");

                    Giao diện điều khiển.WriteLine("Bấm trở về cam kết các bản Cập Nhật hoặc CTRL-C để hủy bỏ.");

                    Giao diện điều khiển.ReadLine();

                    thisItemFolder.Item["Trạng thái phê duyệt"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Giao diện điều khiển.WriteLine(MSH + "Hoàn thành Cập Nhật thư mục.  Thoát khỏi.");

                } // bằng cách sử dụng SPWeb

            } // bằng cách sử dụng SPSite

 Giao diện điều khiển.WriteLine(MSH + "Hoàn thành.");

        } // Chính

    } // lớp foldersync
} // không gian tên
</Mã>

</kết thúc>

Đăng ký vào blog của tôi.

Technorati Tags:

Để lại câu trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *