3

私のextjsグリッド「cutterGrid」には、次の出力を持つレンダラーがあります

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

私のコントローラーには次のものがあります

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

これは機能しますが、明らかにこれにより、行全体をクリックできます。特定のセルでこれが欲しいだけです。

ここに私のグリッドのフィールドがあります

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

2 に答える 2

2

cellclick イベントは、いくつかのパラメーターを関数に渡します。そのうちの 1 つは 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.
}
于 2012-06-11T16:56:11.917 に答える
1

イベントへのサブスクライブの問題は、ahrefHTML 要素がレンダリングされるまで待ってから、それをサブスクライブする必要があることです。フォームに聞く必要のあるリンクがあったとき、次のようにしました。

{
   xtype: 'box',
   autoEl: '<a href='#'>Link</a>',
   listeners: {
      render: function(e) {
         e.getEl().down('a').on('click', function() {
            console.log('GOTCHA!');
         }, e);
      }
   }
} 
于 2012-06-11T12:01:31.050 に答える