ExtJS : PagingToolbar 페이지 변경에서 행 선택을 취소하지 못하게하는 방법은 무엇입니까?
문제
왜 CheckBoxModel 페이징을 사용할 때 페이지 변경에서 선택한 모든 행을 선택 취소하십시오. 툴바 ? 페이지 변경에서 행 선택의 선택을 중단하려면 어떻게합니까?
노드의 제거를 방지하는 데 사용할 수있는 pruneremoved가 있지만 false로 설정했지만 선택 취소는 여전히 해고됩니다. 그 밖의 무엇을 시도할지 모르겠습니다.
저장소가 변경 될 때 PagingToolbar를 저장할 수있는 CheckBoxModel 레지스터를 가정하고 있습니다 ... 그런 다음 모든 것을 선택 취소합니까? 왜? 나는 그것을 막을 필요가있다.
편집 : 해약을 원하지 않는 이유는 다음과 같습니다. 핸들러를 선택하고 선택 취소합니다. 다른 그리드에 행 추가를 선택하고 선택을 취소합니다. 따라서 사용자가 행이 다른 그리드에 추가 된 확인란을 검사하면 해당 그리드에서 제거되지 않은 상태를 확인하십시오. DelectAll을 발사하는 그리드에서 저장소가 변경되면 다른 그리드의 모든 저장된 행을 모두 잃습니다.
해결책
이 작업을 수행하는 올바른 방법인지 확실하지 않지만 저를 위해 일하고 있습니다.
내가 한 일은 내 자신의 ext.grid.view를 생성했습니다.Extended Extended.View.Table 및 Over-Road onMaskBefoReShow 메소드.이것은 그리드 선택 모델에서 모두 선택 취소 된 메서드입니다.당신이 볼 수 있듯이 나는 그것을 여기에서 그것을 밖으로 논평했다
Ext.define('Ext.grid.SteveView', {
extend: 'Ext.view.Table',
alias: 'widget.stevegridview',
onMaskBeforeShow: function(){
var me = this,
loadingHeight = me.loadingHeight;
//me.getSelectionModel().deselectAll();
me.all.clear();
if (loadingHeight && loadingHeight > me.getHeight()) {
me.hasLoadingHeight = true;
me.oldMinHeight = me.minHeight;
me.minHeight = loadingHeight;
me.updateLayout();
}
}
});
.
위의 스크립트를 포함 한 다음 그리드를 만들 때 viewType을 stevegridview로 변경하거나 이름을 지정하려는 것을 변경하십시오.
{
xtype: 'grid',
viewType:'stevegridview',
store:'some store'
...
}
.
새로운 뷰 유형이 사용됩니다. 새 OnMaskBeforeShow ()가 호출됩니다.