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을 오랫동안 찾았지만 도움이 될 만한 자료를 찾지 못했기 때문에 구성 요소를 다시 쓰는 능력이 좋지 않으면 원본을 바꿀 수밖에 없었다.대하가 더 좋은 방법을 제공해 줬으면 좋겠어요.

좋은 웹페이지 즐겨찾기