2015-12-02 2 views
0

Моя проблема заключается в том, что у меня есть иерархическая сетка (Master and Child), пусть говорят, что у меня есть сетка отдела, которая содержит список рабочей таблицы, и оба они используют один и тот же источник данных. Вот мой 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

Смежные вопросы