2012-02-27 3 views
0

격자 패널에 XTemplate 셀의 열이 있습니다. 이 특정 열의 모든 셀에 적용되는 클릭 이벤트/수신기를 어떻게 추가합니까? 지금까지 시도한 것은 작동하지만 그리드의 모든 셀에 대한 모든 클릭에 적용됩니다. 특정 클래스의 요소를 필터링하기 위해 대리자 옵션을 조작 할 수없는 것 같습니다. 지금까지격자의 XTemplate 요소 클래스에 이벤트 수신기 추가

내 코드 :

columns:[ 

... 

{ 
    xtype: 'templatecolumn', 
    text: 'Approve2', 
    flex: 1, 
    dataIndex: 'Approved', 
    align: 'center', 
    sortable: false, 
    tpl: '<input type="checkbox" class="approveCheckbox" />' 
}, 

... 

], 
initComponent: function() { 
    this.on('itemclick', this.storeCheckboxVal, this, { delegate: '.approveCheckbox' }); 
}, 

... 

, 
storeCheckboxVal: function (view, record, item, index, event) { 
     alert(record.data['ID']); 
} 

답변

0

덕분에 모든 응답을 위해, 그러나 나는이 솔루션을 통해 내 문제를 해결하기 위해 관리했습니다 : Ext JS on click event

1

당신은 아마 cellmodel에 그리드의 selType을 변경해야합니다. 그 후에는 격자보기의 셀 클릭을들을 수 있어야합니다. 이것은 문서화되지 않은 것으로 보입니다. 그러나 나는 이것을 알아 내기 위해 매우 유용한 속임수 인 Ext.util.Obersvable.capture(Ext.getCmp('my-grid-id'), console.log)을 사용하여 그것을 발견했습니다.

2

AFAIK, delegate은 처리기를 DOM 요소 (구성 요소 아님)에 할당 한 경우에만 작동합니다. 대신에이 코드를보십시오 :

initComponent: function() { 
    this.mon(this.el, 'click', this.storeCheckboxVal, this, { delegate: '.approveCheckbox' }); 
}, 
관련 문제