2012-10-04 5 views
1

그리드 셀의 체크 박스가 클릭되는 것을 방지 할 수 있습니까? 체크 박스가 클릭되거나 표시되지 않도록합니다.

내 열입니다 :

{ 
    header: 'Select', 
    dataIndex: 'indexSelect', 
    width: 75, 
    xtype: 'checkcolumn', 
    renderer: this.CheckColumn_CheckStatus, 
} 

내가 체크 박스를 비활성화하거나 보이지 않게하는 렌더러를 사용하려고 해요 :

CheckColumn_CheckStatus: function (value, metaData, record, rowIndex, colIndex, store) 
{ 
    //do something 
} 

은 내가를 반환도 아무것도 반환 또는 해달라고하면 빈 문자열 인 경우 확인란은 UI에 렌더링되지 않지만 계속 선택 될 수 있습니다.

아이디어가 있으십니까?

+0

예, 동일한 동작 ... – Diego

+0

windowsform? 나는 ext js를 사용하고있다 – Diego

답변

1

청취자 예 : beforecheckchange에서 false를 반환 할 수 있습니다. 당신이 MVC 패턴을 사용하는 경우

그냥 컨트롤러에 포함 : 당신이 MVC 패턴을 사용하지 않는 경우

'yourgridpanel checkcolumn': { 

    beforecheckchange: function(column, index) { 
     var user = Ext.getStore('User').first(); 

     // I was doing this if a user doesn't have permission but 
     // if you want to stop all edits you can just return false 
     // without the "if" statement 
     if (!user || !user.get('edit_permission')) { 
      return false; // cancels checkchange event 
     } 
    } 
} 

당신은 단지 열 자체에 리스너를 부착 할 수 (나는 것으로 가정합니다 이 예에서 모든 수표 변경을 취소하고 싶습니다.) :

{ 
    header: 'Select', 
    dataIndex: 'indexSelect', 
    width: 75, 
    xtype: 'checkcolumn', 
    listeners: { 
     beforecheckchange: function() { 
      return false; // cancels all checkchanges 
     } 
    } 
}, { 
    // another column definition, etc... 
} 
+0

놀라운. 매우 감사합니다. 내가 겪고있는 다른 문제를 확인할 수 있습니까? http://stackoverflow.com/questions/12674350/extjs-actioncolumn-renderer-prevents-handler – Diego

관련 문제