【问题标题】:Dojo Dgrid inline edit save another rowDojo Dgrid 内联编辑保存另一行
【发布时间】:2014-05-29 08:48:58
【问题描述】:

我有一个包含 2 列的 dgrid:名称、前任。

每一行都有另一行作为前任,我将其设置为。行的顺序与此无关。

在前置列中,我从列表中选择另一行的名称作为前置。

我的问题是,当我将行的名称设置为另一行的前身后更改该行的名称时,它不会自动更改为新名称(这是预期的)。 当然,在手动刷新页面后,我会看到新名称。

如何手动更改所需单元格中的行名称,而无需手动刷新页面或在 save() 完成后不使用 grid.refresh() 方法? 例如在 save() 函数的回调中设置单元格中的值。

我正在使用 dojo.store.JsonRest。我正在使用 grid.save() 方法将 PUT 请求发送到我的商店。痛处是一个 PHP 页面,它将它的响应返回到 JSON 中的笑容。

我的网格如下所示:

    <table id="myGrid" data-dojo-props="query:{param: 'value'}">
    <tr>
    <th data-dgrid-column="editor({field:'name',id:'name',width:175,sortable:false, unhidable:true,formatter:'do_highlight',editor:TextBox,editOn:'dblclick'})">Name</th>
    <th data-dgrid-column="{field:'predecesors', id:'predecesors', width:175, sortable:false,renderCell:milestones.render_predecessor}">Predecessor</th>
    </tr>                                        
    </table> 

我在“dgrid-datachange”事件中调用的保存函数如下所示:

this.end_edit = function(event){
    var item = event.grid.store.get(event.cell.row.id);
    item.__edited_field = event.cell.column.field;
    event.grid.updateDirty(event.cell.row.id, field, new_value);
    var def = event.grid.save();
    def.then(null, ajax.show_error);
}

如果有人知道如何刷新该特定单元格,我将不胜感激。我想避免使用 refresh() 函数,因为它会给我带来错误。

【问题讨论】:

    标签: javascript json dojo editor dgrid


    【解决方案1】:

    为了让网格根据商店的变化自动更新行,通常需要两件事:

    • 商店需要可观察
    • 商店需要有一个查询引擎,以便Observable 知道商品所属的位置

    JsonRest 默认不包含queryEngine,因为查询引擎通常需要知道在JsonRest 的情况下取决于服务器行为的信息。但是,在简单的情况下,您仍然可以使用 dojo/store/util/SimpleQueryEngine(这是 Memory 默认使用的)。

    所以你最终会得到类似的东西:

    var store = new Observable(new JsonRest({
        target: '...',
        queryEngine: SimpleQueryEngine
    }));
    

    如果您需要强制其他行重新渲染,您可以通过手动调用store.putstore.notify 来实现(前者如果您真的想将其发送回服务器,后者如果您只是想要在 UI 中更新它 - 通知通常用于允许客户端响应进一步的服务器更新)。

    【讨论】:

      猜你喜欢
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多