我想知道是否支持以下方法:
定义网格架构和列并使用空数组进行初始化:
var dataSource = new kendo.data.DataSource({
data: [] // intentionally empty!
});
$("#grid").kendoGrid({
dataSource: dataSource,
schema: {
model: {
fields: {
arrive: {type: "number"},
depart: {type: "number"},
src: {type: "string"}
}
}
},
columns: [
{ field: "arrive", groupable: false, title: "arrive",width:88},
{ field: "depart", groupable: false, title: "depart",width:88},
{ field: "src", groupable: true, title: "src", width:44 }
]
etcetera
});
然后,在配置/初始化之后,绑定到Change事件:
var grid = $('#grid').data('kendoGrid');
grid.dataSource.bind("change", function (e) {
dataChanged();
});
function dataChanged() {
var grid = $("#grid").data("kendoGrid");
grid.refresh();
}
然后执行此操作:
function populateDatasource(event, data) {
var grid = $('#grid').data('kendoGrid');
var parsedData = $.parseJSON(data);
grid.dataSource.data(parsedData);
}
将触发更改的事件并刷新网格。我认为如果使用空数组初始化dataSource,观察模式可能会有一些麻烦。
答案 0 :(得分:1)
我不确定你的观察模式是什么意思。但网格可以有一个空的数据源。这是一个演示:http://jsbin.com/izizut/1/edit
您的网格配置错误。架构设置是数据源配置的一部分,而不是网格。您可以在数据源API reference中找到更多信息。
在这种情况下,也无需订阅数据源的更改事件。默认情况下网格正在监听它,并会自动刷新。