ext拖拽、上下箭头排序
来源:互联网 发布:电脑网络电缆测试仪 编辑:程序博客网 时间:2024/05/19 02:22
function changeOrder(grid,commandName) {
var grid=eval(grid);
var selectModel=grid.getSelectionModel();
var store = grid.getStore();
var selectedRowIndex=selectModel.lastActive;
//获取选中行
var selectedRow = selectModel.getSelected();
//如果没有选中行,提示错误
if (!selectedRow) {
Ext.MessageBox.alert('${app:i18n('prompt')}',"请选中要调整顺序的行!");
return;
}
if (selectModel.getSelections().length>1) {
Ext.MessageBox.alert('${app:i18n('prompt')}','使用【最上】【上移】【下移】【最下】按钮调整顺序的方式,暂只支持单选模式,!');
return;
}
if((commandName=='top'||commandName=='up')&&selectedRowIndex + 1 == 1){
Ext.Msg.alert('${app:i18n('prompt')}',"当前已经是第一行。");
return;
}
if((commandName=='bottom'||commandName=='down')&&selectedRowIndex + 1 == store.getCount()){
Ext.Msg.alert('${app:i18n('prompt')}',"当前已经是最后一行。");
return;
}
var cindex = undefined;
var total = store.getTotalCount();
var startRow=store.getAt(0);
var endRow=store.getAt(total-1);
var changRow=null;
switch (commandName) {
case "top":
changRow=startRow;
break;
case "bottom":
changRow=endRow;
break;
case "up":
if (selectedRowIndex != undefined && selectedRowIndex > 0) {
cindex = selectedRowIndex - 1;
changRow=store.getAt(cindex);
}
else {
cindex = 0;
changRow=store.getAt(cindex);
}
break;
case "down":
if (selectedRowIndex != undefined && selectedRowIndex < total -1) {
cindex = selectedRowIndex + 1;
changRow=store.getAt(cindex);
}
else {
cindex = total -1;
changRow=store.getAt(cindex);
}
break;
default:
Ext.MessageBox.alert('${app:i18n('prompt')}',"没有找到正确的CommandName!");
}
sendMsg(selectedRow.data,changRow.data,store);
}
function sendMsg(obj1,obj2,store){
// 将数据放到另一个数组中
var selFuns = [];
selFuns .push(Ext.util.JSON.encode(obj1));
selFuns .push(Ext.util.JSON.encode(obj2));
//调用sava方法保存排序信息
Ext.Ajax.request({params: {funExt:selFuns},
url: "../kbskoujing/saveKbsSituationOrder.action",
success: function(response) {
var resp = Ext.util.JSON.decode(response.responseText);
if (resp.status == "ok") {
store.load();
}
}
});
}
拖拽
Ext.onReady(function(){
var fristGridDropTargetEl = gridView.getView().mainBody;
var fristGridDropTarget = new Ext.dd.DropTarget(fristGridDropTargetEl, {
ddGroup:"gridDDGroup",
notifyDrop:function(ddSource, e, data){
var grid = data.grid;
var store = grid.store;
var rows = grid.getSelectionModel().getSelections();
var selecIndex=grid.getSelectionModel().lastActive;
if (rows.length>1) {
Ext.MessageBox.alert('${app:i18n('prompt')}','拖拽排序,暂只支持单选模式!');
return;
}
var cindex = ddSource.getDragData(e).rowIndex;
if (cindex == undefined || cindex < 0) {
e.cancel = true;
return;
}
var selectedRow=store.getAt(selecIndex);
var changRow=store.getAt(cindex);
sendMsg(selectedRow.data,changRow.data,store);
}
});
});
前台传array数组,后台处理如下:
private List<KbsSituation> selFuns;
private List funExt;//省略set、get方法
//保存排序信息
public String saveKbsSituationOrder() {
if (funExt != null && funExt.size() > 0) {
JSONObject jsonObj = null;
String[] dateFormats = new String[]{"yyyy-MM-dd HH:mm:ss"}; // 由于 yyyy-MM-dd't' HH:mm:ss的格式没有空格如:2008-08-12 01:20:30
//后台会报错,所以要在实体上面加注解 并且在get方法上面如:@JSON(format="yyyy-MM-dd HH:mm:ss"),这样就没有带T的格式
// 将存放json字符串的对象转换为JSONArray类型
JSONArray array = JSONArray.fromObject(funExt);
Object[] objArray = array.toArray(); // 将JSONArray转换为对象数组
selFuns = new ArrayList<KbsSituation>();
for (Object obj : objArray) {
jsonObj = JSONObject.fromObject(obj);// 将对象类型转换为json对象 由于日期类型丢失,所以要转换
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));
KbsSituation kbsSituation = (KbsSituation) JSONObject.toBean(jsonObj,KbsSituation.class);
selFuns.add(kbsSituation);
}
if (null != selFuns && selFuns.size() > 0) {
KbsSituation situation0 = selFuns.get(0);
KbsSituation situation1 = selFuns.get(1);
List<KbsSituation> kbsSituations = new ArrayList<KbsSituation>();
if (null != situation0 && null != situation1) {
Long seq0 = situation0.getSituationSequence();
Long seq1 = situation1.getSituationSequence();
situation0.setSituationSequence(seq1);
situation1.setSituationSequence(seq0);
kbsSituations.add(situation0);
kbsSituations.add(situation1);
}
kbsSituationBiz.updateKbsSituationList(kbsSituations);
status = "ok";
}
}
return SUCCESS;
}
- ext拖拽、上下箭头排序
- php上下箭头排序
- Gridview自定义排序且显示上下箭头
- Gridview自定义排序且显示上下箭头
- numericUpDown去掉上下箭头
- css整理 -- 右箭头,上下箭头,三角形
- 用字符实现上下箭头
- 带箭头的图片上下切换效果
- 去掉FLEX中scrllbar上下两个箭头
- 一个关于上下箭头的例子
- 巧用css3轻松实现箭头上下旋转
- eclipse git 上下箭头表示什么
- js上下点击排序
- 界面录入时,利用回车键、上下箭头移动光标!
- altas(ajax)控件(十九):上下箭头按钮控件NumericUpDown
- altas(ajax)控件(十九):上下箭头按钮控件NumericUpDown
- Flex:自定义滚动条样式/隐藏上下箭头
- 【cocos2d-x】无限重复动作-新手引导箭头上下移动
- 多组条件查询【具体怎么实现】
- 将 UrbanCode Deploy 用于 Docker 应用的持续交付
- 两张图片切换比例虚拟进度条
- 通过代理服务器访问SFTP问题解决
- SSRS 概要
- ext拖拽、上下箭头排序
- omg dds 博客
- 浅谈JavaSript模块化规范
- Java中serialVersionUID的作用
- 字符编码
- 80端口的烦恼:[3]清除NT Kernel占用80端口
- C++笔记
- Linux中ioctl()函数命令字生成
- decodeObjectForKey:(key)崩溃