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