【问题标题】:How do I get column name from rowselection in an ExtJS grid?如何从 ExtJS 网格中的行选择中获取列名?
【发布时间】:2010-11-20 23:47:51
【问题描述】:

我有一个 extjs 网格面板设置,我希望能够根据用户单击网格中的文本或图标来执行操作。例如,如果用户单击(或双击)列中的单词,则过滤网格,或者如果用户单击图标,则显示弹出窗口。我可以轻松获取他们单击的行,以及该行中列名的值,但我不知道单击了哪一列。

或者,我可以向整个网格添加一个 onClick,然后我可以从行/列中获取单个文本,但我不知道该值属于哪个行索引或列。我可以添加一个 CSS 类来告诉我一个列名,但这似乎是一种 hack。

有什么内置的东西可以做到这一点吗?

【问题讨论】:

标签: javascript extjs grid


【解决方案1】:

网格上的"cellclick" event 是要走的路。监听此事件的函数被传递:

  • ( Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e )

如果要获取gridCell的文本,调用yourGrid.getView().getCell(rowIndex, colIndex)会返回DOM元素。

如果要获取列标题,请致电:yourGrid.getColumnModel().getColumnHeader(colIndex)

如果您想查找有关特定专栏的其他信息,请致电yourGrid.getColumnModel().getColumnAt(colIndex)

【讨论】:

    【解决方案2】:

    我认为,如果您对列式事件感兴趣,那么行选择是错误的事件。正如 Joshua 建议的那样,cellclick 事件将是您必须调查的事件。

    这个事件可以给定列的dataIndex

    var fieldName = grid.getColumnModel().getDataIndex(columnIndex); 
    

    【讨论】:

      【解决方案3】:

      请查看用于复选框呈现和事件处理的 edit-grid.html 示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-21
        • 2011-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多