6.0 分享一个JS调表格行顺序,一条命令绑定即可
本帖最后由 kingzd 于 2021-7-30 14:38 编辑function sort(listviewName, sortColName, action) {
//表名称,排序数据所在列名,动作(up/down/reindex)
var listview = Forguncy.Page.getListView(listviewName);
var rowCount = listview.getRowCount();
//是否编索引
if (action == "reindex"){
for (var i = 0; i < rowCount; i++) {
listview.setValue(i, sortColName, i + 1);
}
return;
}
//调整顺序
var selectedRowsCount = listview.getSelectedRowIndexs().length;
var currentRowIndex = listview.getSelectedRowIndex();
if (selectedRowsCount == 0) {
alert("未选择记录");
return;
} else if (selectedRowsCount > 1) {
alert("移动时请勿多选")
return;
}
if (action == "up") {
if (currentRowIndex == 0) {
alert("已经到顶了");
return;
}
var passiveRowIndex = currentRowIndex - 1;
} else if (action == "down") {
if (currentRowIndex == rowCount - 1) {
alert("已经到底了");
return;
}
var passiveRowIndex = currentRowIndex + 1;
}
var oldIndex = listview.getValue(currentRowIndex, sortColName);
var newIndex = listview.getValue(passiveRowIndex, sortColName);
listview.setValue(currentRowIndex, sortColName, newIndex)
listview.setValue(passiveRowIndex, sortColName, oldIndex)
return true;
}
20210327 更新,把重新索引移动到action位置,更为合理一点{:4_86:}
自己初学,写的啰里啰嗦,仅达到可以使用的程度,有bug还请大佬赐教保存代码到页面或者应用的js文件内
调用的时候按钮直接调用js把表格1的选中行向上移动就写: sort("表格1","权重","up")
向下移动选中行就写 sort("表格1","权重","down")
记得设置顺序依据列名为“权重”
【已取消】如果权重列序号比较乱,可以最后加参数sort("表格1","权重","up", true)来运行一次,重新编序号
对了 执行后需要提交下表格,表格设置好按权重列排序,就可以实现按一下调节顺序了DEMO在这里,表格设置成始终保留选择项可以连续上下调节位置
lh123 发表于 2021-3-18 23:07
能做个DEMO吗?一段代码没有办法玩。
好的 一会儿发上来 lh123 发表于 2021-3-19 09:39
用上了。工序调整。
看图
:loap1:现在就是每次调整上下都要保存,不会搞不保存排序。。。我再瞅瞅 能否搞一个松绑定表格下调整顺序 13861900516 发表于 2021-3-19 23:49
能否搞一个松绑定表格下调整顺序
我也是个小白。。。没研究出来松绑定排序,因为我也想实现松绑定,现在是退而求其次啦 lh123 发表于 2021-3-21 14:23
用中间表即可实现。
有个小问题,中间表来展示时候也是提交后才可以排序,没想好怎么把排好的顺序放回原表。。。我这个应用场景原表是经过两次筛选的 :hjyzw: :hjyzw:
页:
[1]