Tạo SharePoint constructs bằng JSOM

Tạo SharePoint constructs là gì? Chúng ta lập trình thường nói thẳng với nhau là tạo list, list item…. Tất cả các thứ đó gọi là SharePoint constructs. Bạn sử dụng CreationInformation objects để tạo web, list, list item…

CreationInformation objects

Bạn sẽ thường gặp nhất là ListCreationInformation. Sau đây là liệt kê các objects dạng này mà bạn sẽ gặp khi lập trình SharePoint bằng JSOM:

  • ContentTypeCreationInformation
  • FieldLinkCreationInformation
  • GroupCreationInformation
  • ListCreationInformation
  • ListItemCreationInformation
  • NavigationNodeCreationInformation
  • RoleDefinitionCreationInformation
  • UserCreationInformation
  • ViewCreationInformation
  • WebCreationInformation

Cú pháp sử dụng hầu như là tương tự nhau. Đầu tiên là khởi tạo CreationInformation object. Sau đó là set các properties (optional) cho nó. Đây là ví dụ về tạo ListCreationInformation:

function createList(){
    var currentCtx = new SP.ClientContext();
    var web = currentCtx.get_web();
    var listCreationInformation = new SP.ListCreationInformation();
    listCreationInformation.set_templateType(104);
    listCreationInformation.set_title('vothanhduy.com list title');
    listCreationInformation.set_quicklaunchOption(SP.QuicklaunchOptions.on);
    list = web.get_lists().add(listCreationInformation);

    currentCtx.executeQueryAsync(onSucceed, onFail);
}

Dựa vào CreationInformation objects ở trên, bạn có thể tự research cách sử dụng một cách nhanh nhất.

Complex Field Values

Trong SharePoint, ngoài các columns có data type thông dụng như Single line of text, number, choice… chúng ta dễ bắt gặp field có kiểu phức tạp hơn như lookup, url hay user… SharePoint cung cấp các objects dành cho các complex field values như bên dưới:

  • FieldGeoLocationValue
  • FieldLookupValue
  • FieldUrlValue
  • FieldUserValue

Bạn lưu ý là có từ “Value” ở cuối cùng nhé. Có vẻ dễ hiểu hơn nếu Microsoft đặt như FieldUser, FieldUrl… tuy nhiên bạn sẽ quen dần các objects này khi sử dụng thành thạo.

Leave a Reply

Your email address will not be published. Required fields are marked *