簡體   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