在我正在开发的应用程序中,我需要使用相同的空间来根据TreeView上选择的项目在网格中显示来自不同格式的不同来源的信息。
我找到了两种方法来实现这一目标:
我对剑道很新,所以我不确定哪种方法会更明智。
任何建议?
答案 0 :(得分:2)
答案取决于您的使用模式。
如果需要很长时间并且你可以在DataSource之间频繁切换,那么我会选择第三种方法,它有几个网格,只有一个可见 BUT 如果涉及到大量数据那么你应该销毁网格并重新创建一个新网格,避免使用大量内存但必须来回传输大量数据。
如果切换数据并且网格结构完全相同(相同的列和格式),您可以使用第二个提议(切换数据源)。
答案 1 :(得分:0)
如果您的所有数据都具有相同的列和选项,那么我只需在网格小部件上调用.setDataSource()
以将数据源替换为新数据源。
但是,如果您要更改选项和列,我认为最好只是销毁窗口小部件并重新创建它,这将消除窗口小部件保留任何旧选项的可能性。类似的东西:
function replaceGrid(selector, options) {
var $grid = $(selector);
var gridWidget = $grid.getKendoGrid();
if(gridWidget) {
gridWidget.destroy();
}
$grid.kendoGrid(options);
}