2013-12-16 5 views
0

나는 검도 UI를 처음 사용하기 때문에 MVVM 패턴을 사용하여 검도 UI 그리드를 바인딩하고 내 데이터 소스는 셰어 포인트 목록입니다. 그래서 나는 CSOM 자바 스크립트 코드를 통해 셰어 포인트 목록 데이터를 호출하고있다. 나는 다른 해결책을 시도했지만 아무것도 작동하지 않는 것 같습니다. 나는 셰어 포인트리스트로부터 데이터를 수집했다.Kendo UI 격자 mvvm 패턴을 사용하여 데이터 바인딩

var divisionListData = []; 
//var divisionsViewModel; 

var viewModel = kendo.observable({ 
    isVisible: true, 
    onSave: function (e) { 
     alert('hi'); 
     kendoConsole.log("event :: save(" + kendo.stringify(e.values, null, 4) + ")"); 
    }, 
    divisions: new kendo.data.DataSource({ 
     // schema: { 
      data: divisionListData, 
      schema: { 
       data: "rows", 
       model: { 
        fields: 
            { 
             ID: { type: "string" }, 
             DivisionName: { type: "string" }, 
             DivisionCode: { type: "string" }, 
             OpenDate: { type: "datetime" }, 
             CloseDate: { type: "datetime" }, 
             Description: { type: "string" }, 
            } 
       } 
      }, 
    batch: true, 
     transport: { 

      read: function (e) { 
       return divisionListData; 
      } 
}) 
}) 

function ReadList() { 
    //this.set("isDisabled", false); 
    var clientContext = new SP.ClientContext.get_current(); 
    // denote that we will be performing operations on the current web 
    var web = clientContext.get_web(); 
    // denote that we will be querying the "Business Divisions" custom SharePoint list 
    var divisionsList = web.get_lists().getByTitle("Divisions"); 
    // create a CAML query (blank means just return all items) 
    var camlQuery = new SP.CamlQuery(); 
    // denote that the operation we want to perform is getItems() on the list 
    var divisionsListItems = divisionsList.getItems(camlQuery); 
    var fields = 'Include(ID,DivisionCode, DivisionName, OpenDate, CloseDate, Description)'; 
    clientContext.load(divisionsListItems, fields); 
    clientContext.executeQueryAsync(function() { 
     // get the list item enumerator 
     var listItemEnumerator = divisionsListItems.getEnumerator(); 

     // loop through the items in our custom 
     // "Divisions" SharePoint list 
     var listItem; 

     while (listItemEnumerator.moveNext()) { 
      var division = new Division(); 
      // get the list item we are on 
      listItem = listItemEnumerator.get_current(); 

      // get the divisions 
      division.ID = listItem.get_item("ID"); 
      // var lookup_DivisionCode = listItem.get_item("DivisionCode").get_lookupValue(); 
      //lookup_DivisionCode.get_l 
      var divisionLookupField = new SP.FieldLookupValue(); 
      divisionLookupField = listItem.get_item("DivisionCode"); 
      //var test = divisionLookupField.$2d_1; 
      if (divisionLookupField != null) 
       division.DivisionCode = divisionLookupField.$2d_1; 
      division.DivisionName = listItem.get_item("DivisionName"); 
      division.Description = listItem.get_item("Description"); 
      division.OpenDate = listItem.get_item("OpenDate"); 
      division.CloseDate = listItem.get_item("CloseDate"); 
      divisionListData.push(division); 
      kendo.bind($("body"), viewModel); 
     } 

    }) 
} 
+1

당신이 시도 무엇에 대한 코드와 일부 특정 오류를 알려주세요 호출해야합니다. 이것은 사람들이 당신을 더 도울 수있게합니다. – geedubb

+0

SCOM을 제쳐두고 정적 데이터를 먼저 사용하고 mvvm이 작동하면 더 나아갑니다. – Vojtiik

답변

0

당신은 대신 읽기 내부의 배열을 반환하는 아주 가까이 있습니다 기능 (전자), 당신은

e.success(yourArrayOfData); 
관련 문제