【发布时间】:2011-11-23 09:56:26
【问题描述】:
我正在为我的网格使用 RowEditor 插件。网格记录有三个按钮:选择、更新、取消。当我单击选择时,它将显示另一个网格,用户必须单击一个记录,然后该记录的某些值必须显示在前一个网格上。这该怎么做 ? 我正在使用 extjs 3.0
提前致谢!
【问题讨论】:
我正在为我的网格使用 RowEditor 插件。网格记录有三个按钮:选择、更新、取消。当我单击选择时,它将显示另一个网格,用户必须单击一个记录,然后该记录的某些值必须显示在前一个网格上。这该怎么做 ? 我正在使用 extjs 3.0
提前致谢!
【问题讨论】:
当您单击选择时 - 显示带有网格的模式窗口弹出窗口。当您打开该弹出窗口时,将回调传递给弹出窗口的构造函数。然后强制用户在网格中只选择一条记录(使用 rowselectmodel)。在子网格的 itemclick 上 - 调用您的回调并在父网格中传递选定的数据。使用此数据更新父级的网格记录。
希望我是清楚的。
【讨论】:
要确定用户选择了哪一行,请使用 Ext.grid.GridPanel 的 SelectionModel。默认模型是 Ext.grid.RowSelectionModel(使用 selModel 配置设置更改默认值)。要获取选定的行,请致电myGridPanel.getSelectionModel().getSelected()。这将返回一个 Ext.data.Record。挖掘该数据以填充原始网格/存储。
【讨论】:
感谢您的回复。我已经做了必要的事情。 我是怎么做的,只是将编辑器传递给我的函数并使用选择模型,我得到了值并将它们放入编辑器中。
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
???
}
【讨论】: