2015-08-24 37 views
1

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

+0

好像你问这里的错误问题。你不能使用'onWidgetAttach'模板方法吗? –

回答

2

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

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

见行动:https://fiddle.sencha.com/#fiddle/snq

+0

ouch ...必须有更好的东西...使用这种感觉有点弱,当升级应用程序的框架版本。 –

+0

如果使用widgetcolumn,那么使用可以使用control.getWidgetRecord()来获得有关记录。 –

1

大厦德雷克的回答,我使用的是event.record属性。不幸的是,它看起来像你必须让点击事件有一个轻微的缓冲区,所以它会得到正确的记录添加到它。这有效,但我不完全确定它是否是一种正确的方式。 Example

{ 
    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)) 
     } 
    } 
    } 
} 
+0

非常好,像5.1.0上的魅力一样工作 –

相关问题