2014-04-14 2 views
0

아이콘이있는 작업 열을 만들었고 클릭 한 행이 평가 라이센스 용일 경우 아이콘을 숨기고 싶습니다. 그러나 클릭 이벤트 처리기가 호출되지 않고 있습니까?이 ExtJS 작업 열의 클릭 핸들러가 작동하지 않는 이유는 무엇입니까?

xtype: 'actioncolumn', 
text: 'Actions', 
align: 'center', 
width: 110, 
listeners: [{ 
    getTip: function (v, metadata, rec, row, col, store) { 
     return 'delete ' + rec.get('licenseid'); 
    }, 
    click: function (grid, rowIndex, colIndex, item, event, record, row) { 
     alert('here'); 
     this.fireEvent('LicenseIconClick', grid, record, 'delete'); 
    } 
}], 
renderer: function(value, metadata, record){ 
    if(record.get('licenseid') == 'atlas_usx_evaluation') { 
     return "<img src='./images/atlas/icons/blue/settings-close-b.png'>"; 
    } 
} 

답변

1

Action Column는 클릭 이벤트가 발생하지 않으며, 따라서이되지 않습니다.

는 동적으로 사용자가 원하는 아이콘으로 CSS 클래스를 적용 할 수 있습니다 getClass와 핸들러 기능과 getClass 대신

xtype:'actioncolumn', 
    width:50, 
    items: [{ 
     tooltip: 'Edit', 
     handler: function(grid, rowIndex, colIndex) { 
      var rec = grid.getStore().getAt(rowIndex); 
      alert("Edit " + rec.get('firstname')); 
      this.fireEvent('LicenseIconClick', grid, record, 'delete'); 
      //grid.doLayout(); //maybe... I'm not sure if it is necessary 
     }, 
     getClass: function(v, meta, rec) { 
      if (record.get('licenseid') == 'atlas_usx_evaluation') { 
       return 'settingCloseA'; 
      } else { 
       return 'settingCloseB'; 
      } 
     } 
    }] 

CSS 클래스

.x-action-col-cell img.settingCloseA { 
    background-image: url("./images/atlas/icons/blue/settings-close-a.png"); 
} 

.x-action-col-cell img.settingCloseB { 
    background-image: url("./images/atlas/icons/blue/settings-close-b.png"); 
} 

를 사용합니다. 핸들러 함수에서 이벤트를 발생시킬 수 있습니다.

+1

흠 ... 이미지가 표시되지 않습니다. –

+0

getClass()를 호출하지 않습니다. 나는 액션 열 수준에서 그것을 두는 것을 시도했다, 아직도 운이 없다. –

+0

getClass()가 작동하지만 CSS에서 렌더링되는 아이콘 이미지가 나타나지 않는 것 같습니다. –

관련 문제