>  기사  >  웹 프론트엔드  >  Extjs3.x GridPanel 행 데이터가 위아래로 이동하는 예제 코드

Extjs3.x GridPanel 행 데이터가 위아래로 이동하는 예제 코드

零下一度
零下一度원래의
2018-05-11 14:07:411389검색

저는 Ext3.x를 처음 사용해서 익숙하지 않습니다. 다음번에 쉽게 참고할 수 있도록 여유시간에 녹음해두겠습니다. 동료들에게 도움이 되었으면 좋겠습니다. 그냥 코드를 엉망으로 만드세요!

rowUp : function() {//上移
var records =  this.gridPanel.getSelectionModel().getSelections();//得到选中所有行
for(var i in records)//遍历所选的所有行
{
var record = records[i];//每行的数据(记录此数据)
var index = this.gridPanel.getStore().indexOf(record);//数据所在位置
if(0>=index)
{
return;//不可移动
}
var data = record.data; 
var NewRecord = new Ext.data.Record({ //记录数据,remove&和insert方法是记录数组(我他妈不知道啥玩意)
itemName:data.itemName, //这里面的参数取gridPanel列表中record的定义
itemIndex:data.itemIndex,
maxScore:data.maxScore,
minScore:data.minScore,
itemType:data.itemType
            }); 
this.gridPanel.getStore().removeAt(index);//删除当前所选行数据
this.gridPanel.getStore().insert(index-1,NewRecord);//将记录数据插入到所删除数据位置的上一位置
this.gridPanel.getView().refresh();
this.gridPanel.getSelectionModel().selectRow(index-1,index-1);
}
},
 
rpwDown : function() {//下移
var records =  this.gridPanel.getSelectionModel().getSelections();//得到选中所有行
var num = this.gridPanel.getStore().getCount();
for(var i in records)//遍历所选的所有行
{
var record = records[i];//每行的数据(记录此数据)
var index = this.gridPanel.getStore().indexOf(record);//数据所在位置
if(this.gridPanel.getStore().getCount()-1<=index||0>index)
{
return;//不可移动
}
var data = record.data; 
var NewRecord = new Ext.data.Record({ 
itemName:data.itemName,
itemIndex:data.itemIndex,
maxScore:data.maxScore,
minScore:data.minScore,
itemType:data.itemType
            }); 
this.gridPanel.getStore().removeAt(index);//删除当前所选行数据
this.gridPanel.getStore().insert(index+1,NewRecord);//将记录数据插入到所删除数据位置的下一位置
this.gridPanel.getView().refresh();//刷新(不知道刷的啥)
this.gridPanel.getSelectionModel().selectRow(index+1,index+1);
 
}
//this.gridPanel.getStore().reload();
},

이벤트 호출을 두 함수에 던지기만 하면 됩니다. 잘되는데 버그가 있을텐데(사용해보면 알겠지만 지금은 어떻게 해결해야할지 모르겠습니다), 다중선택 데이터를 위아래로 옮기는 것은 괜찮습니다.

위 내용은 Extjs3.x GridPanel 행 데이터가 위아래로 이동하는 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.