javascript
  • asp.net-mvc
  • kendo-grid
  • 2015-12-02 94 views 0 likes 
    0

    我的問題是我有分層網格(主和子)讓我說有一個部門網格它包含員工網格列表,他們都使用相同的數據源。 這裏是我的GridChild代碼:Kendo Grid Child - >使用CRUD工具欄

    function detailInit (e){ 
        var msterRow = e.sender.items().index(e.masterRow).toString(); 
        var grid = $("<div id='childGrid"+msterRow+"' 
           class=childGrid'/>").appendTo(e.detailCell).kendoGrid({ 
        data: e.data.DeptEmployees, 
        schema: { 
         model: { fields: { foo: {--skip--}, bar: {--skip--} } } 
        }, 
        toolbar: ["create", "cancel", "save"], 
        editable: "popup", 
        columns: [ --skip--] 
        save: function(e){ 
         ajaxUpdateDepartment(msterRow, this.dataSource.data()); 
        } 
    }) 
    

    正如你可以看到我使用data: e.data.DeptEmployees,的子數據源獲取數據。 現在我堆積如何更新子數據源?

    我曾嘗試:

    • 我補充孩子的dataSource.transport更新,我的孩子電網不斷加載。
    • 因此,我最終配置了save: function (e),並簡單地發送當前孩子的所有數據源,但彈出編輯器根本沒有關閉。而且我很難刷新子數據源。
    • 我也試圖將我的主網格和子網格轉換爲ASP Razor 但是沒有確切的例子,我如何在後端處理它,而且我的子網格包含下拉網格,所以這將是一個大的重做。而且我也不知道我怎麼通過它

    我絕望定製參數,我無法找到除了this one任何工作參考。但它使用odata,並且我沒有孩子ID作爲參考,因爲我只使用我在用戶事件中檢索的列表。

    請幫助:「(我耽誤了很多時間爲這一個

    回答

    0

    的解決方案是定義的傳輸性能,以獲取來自主數據,我只需要定義數據和轉換。這傑森

    看看這些代碼:

    function detailInit (e){ 
        var msterRow = e.sender.items().index(e.masterRow).toString(); 
        var grid = $("<div id='childGrid"+msterRow+"' 
           class=childGrid'/>").appendTo(e.detailCell).kendoGrid({ 
        //data: e.data.ChildDetails, 
        transport: { 
         read: function (o) { 
           console.log("child read"); 
           var data = e.data.ChildDetails.toJSON(); 
           o.success(data); 
         }, 
         update: function (o) { 
           console.log("child update"); 
           var data = o.data, 
           arentItem = findByID(data.id); 
           for (var field in data) { 
             if(!(field.indexOf("_") === 0)){ 
              arentItem[field] = data[field]; 
             } 
           } 
           e.data.dirty = true; 
           saveChild(record, "@suffix", msterRow, "update"); 
           o.success(); 
          }, 
          destroy: function (o) { 
           var parentItem = findByID(o.data.id); 
           preventBinding = true; 
           e.data.ChildDetails.results.remove(parentItem); 
           o.success(); 
           saveChild(record, "@suffix", msterRow, "destroy"); 
          }, 
          create: function (o) { 
           console.log("child create"); 
           var record = o.data; 
           record.id = index; 
           index++; 
           saveChild(record, "@suffix", msterRow, "create"); 
           o.success(record); 
          } 
        }, 
        schema: { 
         model: { fields: { foo: {--skip--}, bar: {--skip--} } } 
        }, 
        toolbar: ["create", "cancel", "save"], 
        editable: "popup", 
        columns: [ --skip--] 
    } 
    

    Here's the working dojo snippet

    相關問題