grid checkbox 다중 선택 문제...(클릭 항목으로 변경하여 다중 선택 가능)

2052 단어 ext
1. 원래 방법 덮어쓰기
Ext.override(Ext.grid.CheckboxSelectionModel, {
		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; // reset the last
				view.focusRow(rowIndex);
			} else {
				var isSelected = this.isSelected(rowIndex);
				if (isSelected) {
					this.deselectRow(rowIndex);
				} else if (!isSelected || this.getCount() > 1) {
					this.selectRow(rowIndex, true);
					view.focusRow(rowIndex);
				}
			}
		}
	});

2. 하위 객체를 작성하는 방법을 사용합니다(원래 정의에는 영향을 주지 않음).
Ext.namespace('Ext.xz');     
	      
	Ext.xz.CheckboxSelectionModel =function(config)     
	{     
	    Ext.xz.CheckboxSelectionModel.superclass.constructor.call(this,config);     
	    this.group = config.group;     
	    this.value=config.value;     
	};     
	
	//  
	Ext.extend(Ext.xz.CheckboxSelectionModel, Ext.grid.CheckboxSelectionModel,{
		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; // reset the last
				view.focusRow(rowIndex);
			} else {
				var isSelected = this.isSelected(rowIndex);
				if (isSelected) {
					this.deselectRow(rowIndex);
				} else if (!isSelected || this.getCount() > 1) {
					this.selectRow(rowIndex, true);
					view.focusRow(rowIndex);
				}
			}
		}
	});

좋은 웹페이지 즐겨찾기