2015-08-24 63 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上的魅力一樣工作 –

相關問題