如何在更新ViewModel时多次阻止Kendo UI Grid重新绑定

Dan*_*enz 8 mvvm kendo-ui kendo-grid

当您使用MVVM绑定到Kendo UI Grid时,数据绑定将触发一次,一切都很好.如果您需要在事后更新该数据,则每次更改任何viewmodel(或子视图模型)上的一个数据时,整个网格都会重新数据绑定.因此,如果网格中有一些绑定到模板的单元格,并且您必须从某个外部ajax源更改viewmodel上的2或3个属性,则Databound将为每个更改的模型触发2或3次,从而导致整个可见区域重新绑定.我们怎样才能一次更新大量数据并且只有数据绑定一次?

Pet*_*bev 9

你究竟如何重新绑定网格?基本上如果你改变一些像这样的模型:

dataItem.set('SomeField','new value');
dataItem.set('someOtherField','other value');
Run Code Online (Sandbox Code Playgroud)

这样,由于MVVM,Grid确实会绑定两次.每次调用set时都会触发更改事件.

但是,如果您更新这样的值:

dataItem.SomeField='new value';
dataItem.someOtherField= 'other value';
Run Code Online (Sandbox Code Playgroud)

Grid不会对更改做出反应,也不会重新重新读取模型中的值,您可以通过刷新方法强制Grid执行此操作.

$('#gridName').data().kendoGrid.refresh()
Run Code Online (Sandbox Code Playgroud)