如何恢复dojo dgrid中的单个编辑行?

Posted

技术标签:

【中文标题】如何恢复dojo dgrid中的单个编辑行?【英文标题】:how to revert single edited row in dojo dgrid? 【发布时间】:2012-11-02 09:49:43 【问题描述】:

有没有办法恢复/重置 dojo-dgrid 中已编辑的行?

我可以看到 grid.revert() 确实清除了脏项目并调用了刷新方法,这将刷新整个网格。我不想要整个网格刷新。

是否可以在单击操作列上的恢复/取消图标时仅重置/恢复单个编辑的行(这将是网格中提到的here 和here 中的最后一列)

【问题讨论】:

【参考方案1】:

如果您使用 Observable 包装您的商店,您可以使用 notify() 更新单行。

例如,您可以为 Revert/Cancel 按钮的 onClick 事件创建以下代码:

 renderCell: function(object, data, cell)

   var btnRevert = new Button(
     label: "Revert",
     // ...
     onClick: function(evt)
       var dirty = that.grid.dirty,
           id = object.id;

       if(dirty.hasOwnProperty(id))
         // remove dirty data
         delete dirty[id];
         // ..and notify the store to update
         myStore.notify(object, object.id);
       
     
   , cell.appendChild(put("div")) );

   return btnRevert;
 

这是一个带有示例的 jsfiddle:revert example

【讨论】:

以上是关于如何恢复dojo dgrid中的单个编辑行?的主要内容,如果未能解决你的问题,请参考以下文章

Dojo OnDemandGrid 不会显示数据

dojo dgrid 中的小部件

Dojo dGrid/dStore 实时更新

PropertyGrid 与 dgrid 类似

等效于 Jquery/Backbone.js 中的 Dgrid/Store(Dojo 工具包)

dojo dgrid 或 slick Grid 中的批量更新支持不可用