2012-02-02 31 views
5

Tôi đang tạo danh sách dựa trên mẫu danh sách tùy chỉnh. Danh sách đang tạo, nhưng mẫu danh sách tùy chỉnh không được áp dụng cho danh sách của tôi.Làm cách nào để tạo danh sách mới từ mẫu danh sách (Mô hình đối tượng khách hàng)

ListTemplate template = null; 
ListTemplateCollection ltc = context.Site.GetCustomListTemplates(context.Web); 
context.Load(ltc); 
context.ExecuteQuery(); 

foreach (ListTemplate t in ltc) 
{ 
    if (t.InternalName == "STPDiv.stp") 
    { 
     template = t; 
     break; 
    } 
} 

ListCreationInformation info = new ListCreationInformation(); 
info.Title = "TestCreation"; 
info.TemplateType = template.ListTemplateTypeKind; 
info.TemplateFeatureId = template.FeatureId;   
info.QuickLaunchOption = QuickLaunchOptions.DefaultValue; 
site.Lists.Add(info); 
context.ExecuteQuery(); 

Làm cách nào để sửa đổi danh sách tùy chỉnh?

+0

Trước hết bạn' không kiểm tra đối tượng mẫu, vì vậy bạn có thể không thực sự nhận được mẫu bạn đang theo dõi. Thứ hai mà không giống như một tên mẫu danh sách cho tôi. – GavinB

Trả lời

6

Hãy thử mã này được cung cấp bên dưới. Nó sẽ làm việc cho bạn. Hãy cho tôi biết nếu bạn gặp bất kỳ vấn đề gì.

ClientContext context = new ClientContext("<Your Site URL>"); 
Web site = context.Web;    
context.Load(site); 
context.ExecuteQuery(); 

//Create a List. 
ListCreationInformation listCreationInfo; 
List list; 

listCreationInfo = new ListCreationInformation(); 
listCreationInfo.Title = "<Your Title>"; 
listCreationInfo.Description = "<Your Description>"; 

var listTemplate = 
      site.ListTemplates.First(listTemp => listTemp.Name == "<Your Template Name>"); 
listCreationInfo.TemplateFeatureId = listTemplate.FeatureId; 

list = site.Lists.Add(listCreationInfo); 
context.ExecuteQuery(); 

Theo Microsoft:ListCreationInformation members

TemplateFeatureId = Gets hoặc đặt một giá trị xác định định danh tính năng của đối tượng địa lý chứa schema danh sách để xem danh sách mới

+1

Điều này gần như làm việc cho tôi. Tất cả những gì tôi cần thêm là listCreationInfo.TemplateType = listTemplate.ListTemplateTypeKind; –

+0

Điều này không có tác dụng đối với tôi trong danh sách "Truy cập ứng dụng" và một số mục khác. Ngoài ra ClientContext thực hiện IDisposable vì vậy hãy chắc chắn sử dụng một tuyên bố "sử dụng" trên đối tượng bối cảnh. –

Các vấn đề liên quan