2012-06-11 67 views
3

在我的ExtJS網格「cutterGrid」我有了我的控制器上的以下輸出如何添加控制器事件在ExtJS的電網HREF MVC

<a href="#" class="myclass">Product 1</a> 

渲染器,我有以下

'#cutterGrid':{ 
     cellclick :this.onCutterSelectRow 
    }, 

這個工程,但很明顯,這使得點擊整行。我只是想在一個特定的細胞上。

這裏是外地在我的網格

{ 
          xtype:'gridcolumn', 
          dataIndex:'CutterNumber', 
          text:'Cutter', 
          renderer: renderCutter, 
          flex:1, 
          sortable: true 
         }, 
+0

你使用的是什麼版本的ExtJs?如果是4 - 添加標籤'extjs4',3 - 'extjs3'等 – sha

回答

1

的cellclick事件傳遞一些參數給你的函數 - 其中之一是的EventObject

cellclick(Ext.view.Table this, HTMLElement td, Number cellIndex, Ext.data.Model record, HTMLElement tr, Number rowIndex, Ext.EventObject e, Object eOpts) 

在你的功能,你應該可以這樣做:

function onCutterSelectRow(table, td, cellIndex, record, tr, rowIndex, e, eOpts) 
{ 
    var target = e.getTarget(); 
    //test HtmlElement target to be your anchor, by class name and element. 
} 
1

問題與訂閱的ahref事件是你需要等到HTML元素呈現才把訂閱。當我有我的窗體上的鏈接,我需要聽我做了這樣的事情:

{ 
    xtype: 'box', 
    autoEl: '<a href='#'>Link</a>', 
    listeners: { 
     render: function(e) { 
     e.getEl().down('a').on('click', function() { 
      console.log('GOTCHA!'); 
     }, e); 
     } 
    } 
} 
+0

我明白你的觀點。理想情況下,我會訂閱單元格並使用「cellclick」,但我不確定如何過濾掉我的控制器中的整行。關於上面的例子,我如何在mvc範例中做到這一點 – frosty

+0

那麼......這個代碼可能會在你的視圖中,對吧?你可以用'fireEvent()'替換'console.log',然後在控制器中訂閱這個事件。 – sha