2013-05-02 12 views
0

Ext.grid.GridPanel을 사용하여 상점의 항목을 채우는 중입니다. 모든 것이 잘 작동하지만 한 가지 문제가 있습니다.Extjs 3.4 Ctrl + 마우스 클릭 방지

ctrl + 마우스를 클릭하여 그리드 행을 클릭하면 행이 선택 해제됩니다. 이 행동을 어떻게 막을 수 있습니까? 마우스 클릭 이벤트 및 키 다운 이벤트에

내가 시도 쓰기 기능은

this.grid.onClick = function(event){ 
      if (event.ctrlKey === true){ 
       event.preventDefault(); 
       event.stopPropagation(); 
      } 
     }; 

는 대신 event.preventDefault(); event.stopPropagation();의하지만 운 return false;를 작성했습니다.

제안 사항?

답변

0

한 가지 해결 방법을 찾았습니다. RowSelectionModel.js에서

if(e.ctrlKey && isSelected){ 
    this.deselectRow(rowIndex); 
} 

그래서 난이 기능을 무시하고 경우 위에서 언급 한 일부 사용자 지정 작업을 추가하는 데 필요한 라인

이 사용자 정의 기능 handleMouseDown

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(e.ctrlKey && isSelected){ 
      this.deselectRow(rowIndex); 
     }else if(!isSelected || this.getCount() > 1){ 
      this.selectRow(rowIndex, e.ctrlKey || e.shiftKey); 
      view.focusRow(rowIndex); 
     } 
    } 
}, 

있다.