ExtJs双击行并将记录传递到输入字段中的另一个窗口

Posted

技术标签:

【中文标题】ExtJs双击行并将记录传递到输入字段中的另一个窗口【英文标题】:ExtJs double click on row and pass record to another window in input field 【发布时间】:2012-11-09 15:58:52 【问题描述】:

我创建了 ExtJs 窗口,该窗口显示带有从数据库中检索到的信息的网格。现在我必须在 datagrid 行上添加事件双击,我这样做了。我遇到的问题是在这个事件上我打开另一个包含输入字段的窗口,我必须从网格中单击的行中添加值。

这里是双击监听器的代码 sn-p:

listeners : 
     itemdblclick: function(dv, record, item, index, e) 
           _restoreCallsWindow().show(); //show the second window
           Ext.get("sense-restore-calls-path-textfield-bodyEl").child('.x-form-text').set(value:record.data.path, true); //get the input field and add value
        

上面的代码工作正常,当我检查萤火虫中的元素具有来自网格的信息的值属性时,但我想在输入字段中显示这个值。我该怎么做?

你能分享你的知识吗?

谢谢。

【问题讨论】:

我想你会想要保留对第二个窗口的引用并使用组件查询来查找文本字段。然后使用 setValue() 函数设置值,或在该窗口上创建一个表单并在该表单上使用 loadRecord()。在任何情况下,都需要一个 jsFiddle 或更多代码才能给出更好的答案。 【参考方案1】:

我猜你的窗口中有一个Ext.form.Panel,那么你只需要执行以下操作:

listeners : 
    itemdblclick: function(dv, record, item, index, e) 
        var win = _restoreCallsWindow(),
            field= win.down('textfield'); // assuming you have just one textfield
        field.setValue(record.get('path'));
    

请注意,每个字段的名称属性必须与记录的属性名称匹配。否则这是行不通的。

【讨论】:

抱歉没有更精确,我没有使用 Ext.form.Panel 而是使用 Ext.grid.Panel,因为这正是我所需要的。 @user1812671 那么该字段在哪里呢? @user1812671 编辑完成,假设您在打开的窗口中只有一个“文本字段”。如果不是这种情况,请再次发表评论

以上是关于ExtJs双击行并将记录传递到输入字段中的另一个窗口的主要内容,如果未能解决你的问题,请参考以下文章

基于 extjs 网格中的另一个组合框填充字段

Tkinter - 双击获取条目文本(for循环)

模型 ID = 0 时的 ExtJS 文本字段或组合框 defaultValue

如何传递 HttpInputStream 的内容并将其发送到 c# .net 中的另一个 Rest Api

WPF DataGrid 双击行 获得绑定数据

带有文本字段列的 ExtJS Gridpanel