【发布时间】: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