【问题标题】:How can I get the current row in a grid with a combobox editor如何使用组合框编辑器获取网格中的当前行
【发布时间】:2010-11-30 21:11:03
【问题描述】:

我有一个 EditorGridPanel,其中一列中有一个 ComboBox。
在该 ComboBox 的“选择”事件侦听器中,我想知道它位于哪个网格行(不是 ComboBox 行)。
原因是我想在每次选择项目时更新网格中的不同列。
我想我可能遗漏了一些明显的东西。

感谢您的帮助。

【问题讨论】:

    标签: extjs combobox grid roweditor


    【解决方案1】:

    从 4.1 开始,最好改用网格的 edit 事件。您在包含已编辑记录的事件中被传递。

    http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.Panel-event-edit

    【讨论】:

    • 如果我想使用组合中选择的记录中的属性怎么办?我认为在编辑事件中我只能访问 displayField 和 valueField - 而不是绑定到组合的商店的整个记录​​。
    • 我不明白你的意思。该事件有一个record 属性,即有问题的记录。为什么这对你不起作用?
    • 那个是grid store记录,我要combo store记录
    • 触发事件时组合不再存在。您必须从您的视图中访问该组合商店。然后你可以从你的编辑事件处理程序中找到它。这很容易。
    • 是的,我通过 Ext.ComponentQuery.query 创建了对该存储的引用,然后使用我确实拥有的我想要的记录的值 findExact('UniqueId', val);谢谢
    【解决方案2】:

    好的,对于想要尝试这个的其他人,我发现了一个似乎是 EditorGridPanel 的未记录属性:activeEditor。
    此属性包含一个“记录”属性,它是对正在编辑的组合框(或任何实际内容)的当前记录的引用。
    它可能有点弱(因为它没有记录),但似乎有效。

    在 ExtJs 4.2 中,要使用的网格(用于单元格编辑插件)的属性是:

    grid.editingPlugin.getActiveRecord()
    

    editingPlugin 的属性似乎仍然没有记录,而 getActiveRecord() 是。

    【讨论】:

      【解决方案3】:

      此外,在 ExtJS 6 中,您可以使用未记录的属性 context,其中包含 record。

      grid.editingPlugin.context.record
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多