Ext GridPanel 조건에 따라 확인란 표시
var selectModel = new Ext.grid.CheckboxSelectionModel({
singleSelect : false
});
그러나 이렇게 하면 모든 줄에 복선상자가 있다. 만약에 어떤 줄 데이터의 어떤 열이 어떤 조건을 충족시켜야 복선상자 옵션이 있으면 실현하기 어렵다.
이렇게 하면 Ext.grid를 다시 써야 한다.CheckboxSelectionModel의 렌더링은 행 클릭 함수로 이루어집니다.
var selectModel = new Ext.grid.CheckboxSelectionModel({
singleSelect : false,
renderer : function(v, p, record){
if (record.data[' '] == '0'){
return '';
}
return '<div class="x-grid3-row-checker"> </div>';
},
onHdMouseDown : function(e, t) {
if (t.className == 'x-grid3-hd-checker') {
e.stopEvent();
var hd = Ext.fly(t.parentNode);
var isChecked = hd.hasClass('x-grid3-hd-checker-on');
if (isChecked){
hd.removeClass('x-grid3-hd-checker-on');
this.clearSelections();
}else {
hd.addClass('x-grid3-hd-checker-on');
if (this.locked){
return;
}
this.selections.clear();
for (var i = 0, len = this.grid.store.getCount(); i < len; i++ ){
if (this.grid.store.getAt(i).data[" "] != '0'){
this.selectRow(i, true);
}
}
}
}
},
handleMouseDown : function(g, rowIndex, e){
if (e.button !== 0 || this.isLocked()) {
return;
}
var view = this.grid.getView();
if (e.shiftKey && !this.singleSelect && this.last != false ) {
var last = this.last;
this.selectRange(last, rowIndex, e.ctrlKey);
this.last = last;
view.focusRow(rowIndex);
}else{
var isSelected = this.isSelected(rowIndex);
if (e.ctrlKey && isSelected) {
this.deselectRow(rowIndex);
}else if(!isSelected || this.getCount() > 1){
if(this.grid.store.getAt(rowIndex).data[" "] != '0'){
this.selectRow(rowIndex, e.ctrlKey || e.shiftKey);
}
view.focusRow(rowIndex);
}
}
}
});
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ExtJS 3.2 학습 노트(3) 사용자 정의 이벤트Extjs에서 모든 상속은 Ext.util에서 합니다.Observable 클래스의 컨트롤은 이벤트를 지원할 수 있습니다. 클래스에 대해 이벤트를 사용자 정의하려면 다음 절차를 따르십시오. 1, 먼저 클래스를 정의합니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.