使用extjs ,直接在grid上编辑后,如何将整个修改的数据行 传到后台并解析成datatable

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用extjs ,直接在grid上编辑后,如何将整个修改的数据行 传到后台并解析成datatable相关的知识,希望对你有一定的参考价值。

使用extjs ,直接在grid上编辑后,如何将整个修改的数据行 传到.asmx并解析成datatable, 网上看 store 有一个getModifiedRecords方法 请教高手如何使用??

呃 这个很简单啊 grid修改编辑后 其实它自己已经记录了你所修改的数据
你只需要获取并访问后台就行了
editor.on(
scope: this,
afteredit: function(roweditor, changes, record, rowIndex)
Ext.Ajax.request(
url : localhostURL + \'/Ad.do\',
method: \'POST\',
jsonData :Ext.util.JSON.encode(record.data),
// record.phantom 是否为更新数据 ? true : false
params: action:\'saveOrUpdate\',
success: function(response)
if(response.responseText == \'succ\')
Ext.example.msg(\'Message\',\'Operation success!\');
else
Ext.example.msg(\'Message\',\'Operation failed!\');

reloadAdStore();

);

);

你看 很简单 就这样就可以了
参考技术A store里面有个modified属性,里面存的是你修改的record,你可以grid.getStore().getModifiedRecords()获取那些你修改过的record,也可以grid.getStore().modified获取,反正都是获取modified数组

在 ExtJs 3.4 网格中的特定单元格中开始编辑

【中文标题】在 ExtJs 3.4 网格中的特定单元格中开始编辑【英文标题】:Start editing in a specific cell in an ExtJs 3.4 grid 【发布时间】:2012-02-24 21:08:10 【问题描述】:

在我的网格中,我添加了一个行编辑器作为插件(使用new Ext.ux.grid.RowEditor())。我想将焦点放在特定记录中的特定列上。

这就是我现在拥有的: editor.startEditing(record);;

它开始编辑并将焦点放在第一个字段上,但我想定义一个不同的字段。在网上搜索我看到人们有类似的东西:editor.startEditing(record, column)editor.startEdit(record, column) 第一个似乎不起作用,后一个功能不存在。

该解决方案可能依赖于“RowEditing”插件,但由于 ExtJs 对我来说是新的,我不明白该怎么做。

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

我在 ExtJS 4.0.2 中使用带有行编辑器的网格,我以编程方式添加一行并开始使用以下代码对其进行编辑:

var editor = grid.getPlugin('myRowEditor');
grid.getSelectionModel().select(lastRowCounter);   //0 based selector.
editor.startEdit(lastRowCounter,1);  //start editing on Second column.

【讨论】:

我误以为它是 ExtJs 4,但实际上是 3.4。无论如何感谢您的回答,这让我意识到这一点。我仍然不知道如何解决我的问题,但必须重新开始寻找解决方案。【参考方案2】:

在通过尝试浪费时间进行编程之前,我建议您阅读资源。

来自 RowEditor:startEditing: function(rowIndex, doFocus)。所以有第二个参数,但不是索引。 如果您阅读onRowDblClick,您会发现他们首先调用startEditing 禁用焦点,然后他们处理单元格以使用doFocus 进行焦点。

顺便说一下,doFocus 依赖于一个 DOM 事件(用户点击的地方)。如果你没有这样的事件,你可以从那个函数中获得一些灵感:他们只是在列编辑器上调用focus(),从ColumnModel#Column#getEditor()获得。

【讨论】:

谢谢。在 2016 年和你的话我最终使用了docs.sencha.com/extjs/6.0.1/classic/src/…

以上是关于使用extjs ,直接在grid上编辑后,如何将整个修改的数据行 传到后台并解析成datatable的主要内容,如果未能解决你的问题,请参考以下文章

Extjs5 如何设置grid的某行的某列单元格处于编辑状态

Extjs grid 单元格编辑

extjs中如何选中grid中的行,并设置该行不可编辑

extjs中设置列的编辑属性,用到Ext.grid.GridEditor?

extjs 4.0 鼠标编辑完单元格后离开单元格的事件?

以编程方式将记录添加到 ExtJS 中的网格后切换单元格编辑器