如何从另一个网格的另一个选定记录向网格添加数据

时间:2011-11-23 09:56:26

标签: grid extjs

我正在为我的网格使用RowEditor插件。网格记录有三个按钮:选择,更新,取消。当我单击选择它将显示另一个网格,用户必须单击一个记录,然后该记录的某些值必须显示在上一个网格上。这该怎么做 ? 我正在使用extjs 3.0

提前致谢!

3 个答案:

答案 0 :(得分:0)

当您单击选择时 - 显示带网格的模态窗口弹出窗口。当你打开弹出窗口时,会将回调传递给弹出窗口的构造函数。然后强制用户在网格中只选择一个记录(使用rowselectmodel)。在项目点击甚至子网格 - 调用您的回调并传递父网格中的选定数据。使用此数据更新父级网格记录。

希望我很清楚。

答案 1 :(得分:0)

要确定用户选择了哪一行,请使用Ext.grid.GridPanel的SelectionModel。默认模型是Ext.grid.RowSelectionModel(使用selModel配置设置更改默认值)。要抓取所选行,请致电myGridPanel.getSelectionModel().getSelected()。这将返回一个Ext.data.Record。挖掘数据以填充原始网格/商店。

答案 2 :(得分:0)

感谢您的回复。我做了所需的事情。 我是如何完成的,只是将编辑器传递给我的函数并使用选择模型,我得到了值并将它们放入编辑器中。

val1 = selectedArray[0].get('val1');
var cm = grid.colModel, fields = editor.items.items, f, val;
f = fields[1];
f.setValue(val1);
editor.values[f.id] = val;

这让我的生活更轻松。

但是,在进入编辑器之后,我还有另一个问题。如果用户单击更新按钮,我必须在afteredit事件中进行验证。在afteredit事件中,

afteredit: function(object, changes, record, rowIndex)
{
    // I have to do validation on the changes; but its an object. How will I do it 
    ???
}