Mat*_*att 22 javascript data-binding kendo-ui kendo-grid
我只是想知道如何在JavaScript中更改网格中行的值,以便在网格和基础数据源中将其标记为"脏".
例如,我有一个联系人/客户列表.他们有3个字段FirstName/LastName/IsPrimaryContact.只能有1个主要联系人,因此当记录中的主要联系人设置为"真"时,我会使用JavaScript代码循环遍历数据源,并将设置为primary的所有其他联系人设置为false.
JavaScript全部触发正常并且数据字段设置正确但有两个问题:1.网格未更新我对数据源2进行的更改.更改的记录未标记为"脏",因此当我调用Datasource.sync()时没有同步
我可以通过手动设置记录上的脏字段来解决第二个问题,但这似乎不正确.感觉我应该在网格级别更新字段,以便在UI和数据源中处理它.
关于如何解决这个问题的任何想法?
谢谢
Pet*_*bev 39
基本上,当您想要更新记录时,您应该使用模型的set方法.例如,要更新dataSource的第一条记录,您应该像这样更新它:
var firstItem = $('#GridName').data().kendoGrid.dataSource.data()[0];
firstItem.set('FirstName','The updated Name');
Run Code Online (Sandbox Code Playgroud)
上面应该自动将标志标记为脏,它将通知网格有变化,因此网格将自动刷新.
此外,如果要直接检索与特定行相关的对象,可以使用Grid 的dataItem方法.
我以一种非常简单有效的方式做到这一点:
var employee = employeeDataSource.get(employeeId);
employee.dirty = true; // set it as dirty
employeeDataSource.sync(); //Tell the DataSource object to save changes
Run Code Online (Sandbox Code Playgroud)
这是一个古老的问题,但希望它可以对遇到相同问题的任何人有所帮助。
| 归档时间: |
|
| 查看次数: |
61048 次 |
| 最近记录: |