动态改变Grid的DataSource的data。
场景:点击选中myGrid1某行时,将此行的DATA数据填充到myGrid2中,且不丢失myGrid2的DataSource中的其他设置
var myGrid1 = $("#grid1").kendoGrid({
dataSource: {
data: [
{ID: 1, NAME: "名称1", DATA: [
{ID: 1, NAME: "姓名一", DATE_TIME: "2017-4-28 12:30:33"},
{ID: 2, NAME: "姓名二", DATE_TIME: "2017-4-29 12:30:33"}
]
},
{ID: 2, NAME: "名称2", DATA: []}
]
},
columns: [
{ field: "ID", title: "编号", format: "{0:yyyy-MM-dd HH:mm}" },
{ field: "NAME", title: "名称" }
selectable: "row",
change: function (e) {
var selectedItem = this.dataItem(this.select());
myGrid2.dataSource.read({ data: selectedItem.DATA });
//solveGrid.dataSource.data(selectedItem.DATA);//用此方法会将DataSource的其他设置丢失。
},
});
var myGrid2 = $("#grid2").kendoGrid({
dataSource:{
//一定要定义transport的read方法。
transport: {
read: function(operation) {
var data = operation.data.data || [];
operation.success(data);
}
},
schema: {
model: {
id: "ID",
fields: {
ID: { editable: false, nullable: false, type: "number" },
NAME: { validation: { required: true } },
DATE_TIME: { type: "date", validation: { required: true } },
}
}
}
},
columns: [
{ field: "DATE_TIME", title: "时间", format: "{0:yyyy-MM-dd HH:mm}" },
{ field: "NAME", title: "姓名" },
],
}).data("kendoGrid");