繁体   English   中英

如何在extjs小部件列中获取rowIndex

[英]How to get rowIndex in extjs widget column

我需要一个小部件列中的按钮来知道它在ExtJS 6 panel.grid中的rowIndex,以便在按钮上单击它可以使用该功能。 我知道我可以从渲染器函数中提取该信息,但这似乎在创建按钮之前就已执行。 关于如何获取索引的任何想法?

gridview上使用indexOf 您需要将node作为参数传递给它,这是表示行的HTML元素。 在Ext JS 6中,网格行是HTML表,因此可以从按钮元素bb.el.up('table')形式找到按钮的row元素。 gridview也可以作为b.up('gridview') 这样就得到:

var rowIndex = b.up('gridview').indexOf(b.el.up('table'));

实际操作中查看: https//fiddle.sencha.com/#fiddle/snq

基于Drake的答案,我改用event.record属性。 不幸的是,您似乎必须使click事件具有轻微的缓冲,因此它会添加适当的记录。 这可行,但是我不确定这是否是正确的方法。 范例

{
  width: 150,
  xtype: 'widgetcolumn',
  widget: {
    text: 'Button',
    xtype: 'button',
    text: 'Get row index',
    listeners: {
      buffer: 1,
      click: function(button, event, eOpts) {
        var record = event.record;
        alert(store.find('postid', record.get('postid'), 0, false, true, true))
      }
    }
  }
}

使用onWidgetAttach

将小部件附加到记录时将调用的函数。 这对于进行任何后处理可能很有用。

http://docs.sencha.com/extjs/5.1.2/api/Ext.grid.column.Widget.html#cfg-onWidgetAttach

该函数同时具有小部件和记录参数。 您可以执行widget.record = record,然后按钮将具有记录成员,您可以在单击侦听器中访问该成员。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM