当您使用MVVM绑定到Kendo UI Grid时,数据绑定将触发一次,一切正常。如果您需要在事后更新该数据,则每次更改任何视图模型(或子视图模型)上的一条数据时,整个网格都会重新绑定数据。因此,如果网格中有某个单元格绑定到模板,并且必须从某个外部ajax源更改视图模型的2或3个属性,则Databound将为每个更改的模型触发2或3次,导致整个可视区域重新绑定。我们如何一次更新大量数据,并且只有一次数据绑定?如何在更新ViewModels时防止重新绑定Kendo UI Grid
8
A
回答
9
您如何重新绑定网格?基本上,如果你改变一些像这样的车型:
dataItem.set('SomeField','new value');
dataItem.set('someOtherField','other value');
这样的电网将被约束确实因为MVVM的两倍。每次您拨打电话时都会触发更改事件。
但是如果你更新这样的值:
dataItem.SomeField='new value';
dataItem.someOtherField= 'other value';
网格不会改变作出反应,并不会重新绑定从型号上可以强制网格做到这一点通过刷新重新读取的值方法。
$('#gridName').data().kendoGrid.refresh()
1
我不确定是否有方法暂时告诉网格停止监听事件,然后在最后重新同步一次。如果有,请在这里给出答案!否则,我所做的是我没有通过.set()为每个项目。相反,我通过将数据直接设置到属性来更新所有行的数据。然后,当我到达最后一行时,我在需要更新的最后一个属性上调用了.set()。这将导致数据绑定仅触发一次,整个网格将自动刷新所有已更改的数据。如果你不这样做,那么页面上显示的行越多,处理的时间就越长。 (可能需要20秒以上,用户才能再次执行任何操作。)
+0
另一种方法是简单地伪造一些属性添加到最后一个项目,并在年底改变它的值。它会导致相同的效果。 – 2013-03-28 20:24:51
1
它看起来像dataBinding事件是你可以防止在网格上重新绑定。
相关问题
- 1. AngularJs UI Grid从Modal重新绑定
- 2. 在分页时对Kendo Grid重新应用Knockout绑定
- 3. Kendo UI Grid - 更新不会持续
- 4. Kendo Grid CRUD:如何使更新
- 5. 如何在嵌套Kendo Grid时重新加载Kendo TabStrip标签
- 6. 更改Kendo Grid列绑定
- 7. 如何防止CALayer重新绘制其绑定更改?
- 8. Kendo Grid无数据绑定在致电更新方法之前
- 9. Kendo Grid使用Ajax更新
- 10. 如何防止绑定刷新
- 11. 更新Kendo UI Pro
- 12. 如何在更新网格数据后绑定kendo网格?
- 13. 在Kendo UI的Grid组件中重新排序角色
- 14. 如何挂起DataTable通知或数据绑定以防止UI更新
- 15. Kendo敲除:重新绑定列模板
- 16. 在ASP.NET MVC Kendo UI Grid中删除/更新操作的问题
- 17. 在Click或Keyup上更新Kendo UI Grid的underlock ViewModel
- 18. Kendo UI Grid:更新/保存不起作用(_AntiForgeryToken不存在)
- 19. 在Kendo UI GRID中执行批量更新不起作用
- 20. 批量更新Kendo UI Grid动态更改值
- 21. 防止重复更新CFgrid
- 22. 更改状态时防止状态重新加载ui-router
- 23. 重新绑定后更新局部视图Telerik grid
- 24. 如何使用绑定更新UI
- 25. 防止Chrome在重新定向时重新加载页面?
- 26. Kendo UI Grid - 如何绑定到子属性
- 27. 如何更新Kendo UI Builder中的Kendo UI?
- 28. Kendo UI Grid,Durandal
- 29. 如何防止GPS更新?
- 30. 如何防止scrollView更新
只要你知道你绑定了什么元素,这种方法就可以正常工作。如果您正在更新的数据绑定到不止一件事情上,并且正在某种您不关心屏幕元素的库中进行更新,则可能会导致一些问题。如果你在最后一个项目的属性上调用set(),那么你将不会在意绑定的内容。他们都会得到更新。 – 2013-03-25 13:21:34