2009-06-11 29 views
7

Có cách nào đơn giản để thêm trang phần web vào trang Sharepoint theo lập trình, sử dụng mô hình đối tượng hoặc dịch vụ web không? Dường như có thể tạo danh sách và thêm các phần web theo cách này, nhưng tôi không thể tìm thấy ví dụ về cách tạo trang nội dung.Lập trình nhanh trang web phần trong Sharepoint

Chỉnh sửa: Để cài đặt WSS đơn giản (không phải MOSS).

Trả lời

13

Tôi sẽ đi theo con đường mà đây không phải là một sự hợp tác/xuất bản trang web vì điều này không được đề cập và wss nằm trong danh sách thẻ. Khá vụng về so với việc sử dụng một trang web xuất bản ...

Đầu tiên chọn các trang web mẫu trang phần bạn muốn sử dụng từ:

C: \ Program Files \ Common Files \ Microsoft Shared \ web server mở rộng \ 12 \ mẪU \ 1033 \ STS \ DOCTEMP \ SMARTPGS

Sau đó thiết lập một dòng suối để mẫu và sử dụng SPFileCollection.Add() để thêm nó vào thư viện tài liệu của bạn. Ví dụ:

string newFilename = "newpage.aspx"; 
string templateFilename = "spstd1.aspx"; 
string hive = SPUtility.GetGenericSetupPath("TEMPLATE\\1033\\STS\\DOCTEMP\\SMARTPGS\\"); 
FileStream stream = new FileStream(hive + templateFilename, FileMode.Open); 
using (SPSite site = new SPSite("http://sharepoint")) 
using (SPWeb web = site.OpenWeb()) 
{ 
    SPFolder libraryFolder = web.GetFolder("Document Library"); 
    SPFileCollection files = libraryFolder.Files; 
    SPFile newFile = files.Add(newFilename, stream); 
} 

Lưu ý: Giải pháp này giả sử bạn đã cài đặt phiên bản SharePoint của Hoa Kỳ sử dụng mã ngôn ngữ 1033. Chỉ cần thay đổi đường dẫn nếu khác.

+0

Nó hoạt động: D !! Tốt bài Alex :-) !! – Muhammedh

+0

@Alex Có thể đặt masterpage của newpage.aspx thành SomeMasterPageName.master không? Tôi sẽ bao gồm nó trong mã như thế nào? –

0

Giải pháp thay thế cho câu trả lời được chấp nhận từ @AlexAngas là sử dụng NewWebPage method của SharePoint Foundation RPC Protocol, như được đề xuất here.

private static void CreateWebPartPage(this SPWeb web, SPList list, string pageName, int layoutTemplate) 
{ 
    const string newWPPage = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + 
            "<Batch>" + 
            "<Method ID=\"0,NewWebPage\">" + 
            "<SetList Scope=\"Request\">{0}</SetList>" + 
            "<SetVar Name=\"Cmd\">NewWebPage</SetVar>" + 
            "<SetVar Name=\"ID\">New</SetVar>" + 
            "<SetVar Name=\"Type\">WebPartPage</SetVar>" + 
            "<SetVar Name=\"WebPartPageTemplate\">{2}</SetVar>" + 
            "<SetVar Name=\"Overwrite\">true</SetVar>" + 
            "<SetVar Name=\"Title\">{1}</SetVar>" + 
            "</Method>" + 
            "</Batch>"; 
    var newWPPageBatchXml = string.Format(newWPPage, list.ID, pageName, layoutTemplate); 

    var result = web.ProcessBatchData(newWPPageBatchXml); 
} 

Sử dụng các phương pháp khuyến nông trên:

web.CreateWebPartPage(yourList, "NewPage", 2); 
Các vấn đề liên quan