2012-11-28 29 views
1

我有這樣的一個網格:煎茶電網和操作列

{    xtype: 'actioncolumn', 
      renderer: function (val, metadata, record) { 
       if (record.raw.possibleActions != 2) { 
        this.items[0].icon = ''; 
        this.items[0].tooltip = ''; 
       } 

       metadata.style = 'cursor: pointer;'; 
       return val; 
      }, 
      width: 30, 
      align: 'center', 
      sortable: false, 
      items: [{ 
       icon: 'images/edit.png', 
       tooltip: 'stuff', 
       handler: function (grid, rowIndex, colIndex) { 
        'do stuff' 
       } 
      }] 
     }, 

我想,當現場「possibleActions」是不同於2隱藏操作列的圖標。

有了這個this.items[0].icon = '';它會從所有列的圖標...

我怎麼能訪問列的特定行相匹配的條件?

回答

1

那麼使用this真的有風險。你可能會結束一些其他的事例。

但是沒關係,如果你有實例,我建議你使用

setVisible(false); 
disable(); 

禁用和

setVisible(true); 
enable(); 

啓用。僅僅刪除圖像是不夠的。

+0

問題是,'this'或'grid.columns'指的是所有列...我想能夠訪問特定的一個。 –

+1

@MiguelTeixeira正如我想的那樣......那很難。問題是,渲染器函數(可以'重寫')知道值而不是Column類型。對於你的情況,你需要混合兩者。我想最好的辦法是創建你自己的行動專欄。有了這個,你可以完全控制,這樣你就可以感受到一個包含值+實例的偵聽器。 – sra

+0

感謝您的幫助,我已經弄明白了。 –

6

我已經解決了它:

renderer: function (val, metadata, record) { 
       if (record.raw.possibleActions != 2) { 
        this.items[0].icon = ''; 
        this.items[0].tooltip = ''; 
       } else { 
        this.items[0].icon = 'images/edit.png'; 
        this.items[0].tooltip = 'RELATÓRIO FINAL'; 
       } 

       metadata.style = 'cursor: pointer;'; 
       return val; 
      }, 

看來,渲染器覆蓋初始配置,這就是爲什麼所有的記錄有沒有圖標。