itemselector-multiselect 데이터 필터
3738 단어 EXT
itemselector.js 소스:
// , 。
fromTo : function() {
var selectionsArray = this.fromMultiselect.view.getSelectedIndexes();
var records = [];
if (selectionsArray.length > 0) {
for (var i=0; i record = this.fromMultiselect.view.store.getAt(selectionsArray[i]);
records.push(record);
}
if(!this.allowDup)selectionsArray = [];
for (var i=0; i record = records[i];
/**
*
*/
for(var j=0; j var _toStoreRecord = this.toMultiselect.view.store.getAt(j);
if(record.get(' ')==_toStoreRecord.get(' ')){
//
return;
}
}
if(this.allowDup){
var x=new Ext.data.Record();
record.id=x.id;
delete x;
this.toMultiselect.view.store.add(record);
}else{
this.fromMultiselect.view.store.remove(record);
this.toMultiselect.view.store.add(record);
selectionsArray.push((this.toMultiselect.view.store.getCount() - 1));
}
}
}
this.toMultiselect.view.refresh();
this.fromMultiselect.view.refresh();
var si = this.toMultiselect.store.sortInfo;
if(si){
this.toMultiselect.store.sort(si.field, si.direction);
}
this.toMultiselect.view.select(selectionsArray);
},
// , 。
toFrom : function() {
var selectionsArray = this.toMultiselect.view.getSelectedIndexes();
var records = [];
/** */
if (selectionsArray.length > 0) {
for (var i=0; i record = this.toMultiselect.view.store.getAt(selectionsArray[i]);
records.push(record);
}
selectionsArray = [];
for (var i=0; i record = records[i];
this.toMultiselect.view.store.remove(record);
if(!this.allowDup){
this.fromMultiselect.view.store.add(record);
selectionsArray.push((this.fromMultiselect.view.store.getCount() - 1));
}
}
}
this.fromMultiselect.view.refresh();
this.toMultiselect.view.refresh();
var si = this.fromMultiselect.store.sortInfo;
if (si){
this.fromMultiselect.store.sort(si.field, si.direction);
}
this.fromMultiselect.view.select(selectionsArray);
}
multiselect.js 소스 코드 (드래그할 때 데이터 필터):
원본 코드에서 Ext.dd.DropZone를 계승할 때 이 방법을 다시 씁니다. 드래그한 데이터 원본 대상이 목표 구역에 착륙할 때 이 함수를 호출합니다.안에서 고쳐.
// private
onNodeDrop : function(n, dd, e, data){
// return false;
}
원본 코드를 바꾸는 것은 그다지 좋지 않으니, 스스로 구성 요소를 다시 쓰는 것이 가장 좋다.나는 N을 오랫동안 찾았지만 도움이 될 만한 자료를 찾지 못했기 때문에 구성 요소를 다시 쓰는 능력이 좋지 않으면 원본을 바꿀 수밖에 없었다.대하가 더 좋은 방법을 제공해 줬으면 좋겠어요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ext.form.ComboBox 편집 페이지 표시 값 문제최근 EXTJS 3.0 개발 프로젝트, 페이지 폼에 ComboBox가 사용되었습니다. 어떻게 편집 페이지에 들어갈 때 백그라운드에서 전해지는 값을 표시할 수 있습니까?세 가지 방법이 모두 통과되었는데, 이를 요약하면...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.