【问题标题】:How to add data to the grid from another selected record of another grid如何从另一个网格的另一个选定记录将数据添加到网格
【发布时间】:2011-11-23 09:56:26
【问题描述】:

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

提前致谢!

【问题讨论】:

    标签: grid extjs


    【解决方案1】:

    当您单击选择时 - 显示带有网格的模式窗口弹出窗口。当您打开该弹出窗口时,将回调传递给弹出窗口的构造函数。然后强制用户在网格中只选择一条记录(使用 rowselectmodel)。在子网格的 itemclick 上 - 调用您的回调并在父网格中传递选定的数据。使用此数据更新父级的网格记录。

    希望我是清楚的。

    【讨论】:

    • 谢谢你,我只是做了你写的一切,但我需要显示数据(孩子的一些记录到父母)并且该行仍处于可编辑模式,带有三个按钮,当我点击从子网格更新数据将进入数据库。用户可以编辑也可以不编辑剩余的字段。我完成了你所写的所有内容,但我不知道如何将数据从子网格显示到父网格当前行(处于可编辑模式)
    • 你总是可以得到当前编辑的行。使用父网格选择模型,然后您可以更新该行的记录。您还可以在当前打开的 RowEditor 中更新编辑器。处理所有这些时刻可能有点复杂,但它是可行的:)。
    • 你能给我一些示例代码吗?我不知道如何编码。我的电子邮件是:thorusan@gmail.com 谢谢!
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      感谢您的回复。我已经做了必要的事情。 我是怎么做的,只是将编辑器传递给我的函数并使用选择模型,我得到了值并将它们放入编辑器中。

      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 
          ???
      }
      

      【讨论】:

        猜你喜欢
        • 2017-06-13
        • 1970-01-01
        • 2013-02-03
        • 2020-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多