我想知道是否支持以下方法:
-
定义网格架构和列,并使用空数组进行初始化:
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); }
这将触发更改的事件并刷新网格。 我认为如果数据源使用空数组初始化,观察模式可能会有一些麻烦。
我不确定你所说的观察模式是什么意思。但网格可以具有空数据源。这是一个演示:http://jsbin.com/izizut/1/edit
您的网格配置错误。架构设置是数据源配置的一部分,而不是网格的一部分。可以在数据源 API 参考中找到更多信息。
在这种情况下,也无需订阅数据源的更改事件。默认情况下,网格正在侦听它,并将自动刷新。