mvvm - 更新 ViewModel 时如何防止 Kendo UI Grid 多次重新绑定(bind)

标签 mvvm kendo-ui kendo-grid

当您使用 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/

相关文章:

wpf - 带有MS SQL Server的通用Windows应用

javascript - 无法根据 Kendo UI 中的组合框选择正确填充 Kendo Treeview

jquery - Kendo UI Grid 使特定行不可选择

javascript - 触发行特定的kendo ui Angular 2网格鼠标悬停事件

kendo-ui - Kendo 分层网格对齐问题

c# - 无法将它绑定(bind)到我的网格到 Telerik OpenAccess 数据源

wpf - 带有Ninject的MVVM ViewModelLocator

c# - Xamarin 窗体可绑定(bind)网格

android - Realm 结果的 LiveData Observer 第一次没有被触发

angularjs - 在 AngularJS 中从 Kendo TreeView 删除到 div