[英]How to get rowIndex in extjs widget column
我需要一個小部件列中的按鈕來知道它在ExtJS 6 panel.grid中的rowIndex,以便在按鈕上單擊它可以使用該功能。 我知道我可以從渲染器函數中提取該信息,但這似乎在創建按鈕之前就已執行。 關於如何獲取索引的任何想法?
在gridview
上使用indexOf
。 您需要將node
作為參數傳遞給它,這是表示行的HTML元素。 在Ext JS 6中,網格行是HTML表,因此可以從按鈕元素b
以b.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.