当您使用 MVVM 绑定(bind)到 Kendo UI Grid 时,数据绑定(bind)将触发一次,一切都很好。如果您需要事后更新该数据,则每次更改任何 View 模型(或 subview 模型)上的一条数据时,整个网格都会重新绑定(bind)数据。因此,如果您在网格中有一些绑定(bind)到模板的单元格,并且您必须从某个外部 ajax 源更改 View 模型上的 2 或 3 个属性,则 Databound 将为每个更改的模型触发 2 或 3 次,从而导致整个可视区域重新绑定(bind)。我们如何一次更新大量数据并且只触发一次数据绑定(bind)?
最佳答案
你究竟是如何重新绑定(bind)网格的?基本上,如果您像这样更改某些模型:
dataItem.set('SomeField','new value');
dataItem.set('someOtherField','other value');
这样,由于 MVVM,Grid 确实会被绑定(bind)两次。每次调用 set 时都会触发 change 事件。
但是,如果您像这样更新值:
dataItem.SomeField='new value';
dataItem.someOtherField= 'other value';
网格不会对更改使用react,也不会重新绑定(bind)从模型中重新读取值,您可以通过 强制网格执行此操作刷新 方法。
$('#gridName').data().kendoGrid.refresh()
关于mvvm - 更新 ViewModel 时如何防止 Kendo UI Grid 多次重新绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15579857/