2013-08-22 4 views
0

это мое первое сообщение, так что будьте милы со мной.редактируемый kendoGrid внутри kendoGrid Редактировать всплывающее окно не работает правильно

Моя проблема заключается в следующем: Fist У меня есть два объекта Связанный и адрес (у ассоциированных есть много адресов).

На веб-странице есть редактируемый список kendoGrid, связанный с ним (источник данных содержит все связанные с ним списки со своими адресами), и когда я нажимаю кнопку редактирования, появляется всплывающее окно с данными и редактируемым kendoGrid со списком адресов , Я нажимаю кнопку редактирования, появляется всплывающее окно редактирования, но кнопка обновления не работает, и кнопка отмены удаляет строку.

следующий мой код

Datasource

associatedDS = 
new kendo.data.DataSource({   
data: Data, 
schema: { 
    model: { 
    id: "AsociatedID", 
    fields: { 
    Associated: { type: "string", editable: false, nullable: true }, 
    Addresses: { type: "object", validation: { required: true } }       
    } 
    } 
} 
}); 

Сетка Associated

var Associated = 
$("#kgrd_Associated").kendoGrid({ 
columns: [ 
{ field: "AsociatedID", title: "Direccion", width: "100px", }, 
{ field: "Associated", title: "Direccion", width: "100px", }, 
{ field: "Addresses", title: "Addresses", width: "350px", editor:addressGridEditor, template: "#= Addresses.length #" }, 
{ command: ["edit", "destroy"], title: " ", width: "150px" } 
], 
dataSource: associatedDS, 
editable: "popup", 
height: 400, 
pageable: true, 
scrollable: true, 
sortable: true, 
selectable: "row", 
}).data("kendoGrid"); 
}); 

Сетка Адрес

function editor:addressGridEditor(container, options) { 
var repgrid = $('<div id="kgrd_Address" data-bind="source:' + options.field + '"></div>') 
.appendTo(container) 
.kendoGrid({ 
    columns: [      
    { field: "Address", title: "Address", width: "150px" }, 
    { command: ["edit", "destroy"], title: "&nbsp;", width: "150px" } 
    ], 
    editable: "popup", 
    scrollable: true, 
    selectable: "row", 
    autoBind: true     
    }).data("kendoGrid"); 
} 

Связывание работает нормально, но источник данных kgrd_Address генерируется неправильно, так как отсутствует схема (необходимо обновить) и _pristineData (требуется для отмены).

Я не знаю, если я что-то упустил или если это обходное решение. Учтите, что у меня может быть более одного kendoGrid внутри всплывающего окна, например idk, kgrd_contacts.

ответ

0

Попробуйте это,

function addressGridEditor(container, options) { 
    var repgrid = $('<div id="kgrd_Address" data-bind="source:' + options.field + '"></div>') 
    .appendTo(container) 
    .kendoGrid({ 
     columns: [      
     { field: "Address", title: "Address", width: "150px" }, 
     { command: ["edit", "destroy"], title: "&nbsp;", width: "150px" } 
     ], 
     editable: "popup", 
     scrollable: true, 
     selectable: "row", 
     autoBind: true     
     }).data("kendoGrid"); 
    } 

Я думаю, вы должны удалить editor: из функции.

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