本帖最后由 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位置,更为合理一点
自己初学,写的啰里啰嗦,仅达到可以使用的程度,有bug还请大佬赐教保存代码到页面或者应用的js文件内
调用的时候按钮直接调用js把表格1的选中行向上移动就写: sort("表格1","权重","up")
向下移动选中行就写 sort("表格1","权重","down")
记得设置顺序依据列名为“权重”
【已取消】如果权重列序号比较乱,可以最后加参数sort("表格1","权重","up", true)来运行一次,重新编序号
对了 执行后需要提交下表格,表格设置好按权重列排序,就可以实现按一下调节顺序了DEMO在这里,表格设置成始终保留选择项可以连续上下调节位置
sort_demo.fgcc
(54.95 KB, 下载次数: 520)
|