kingzd 发表于 2021-3-18 14:49:59

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在这里,表格设置成始终保留选择项可以连续上下调节位置



kingzd 发表于 2021-3-19 08:29:01

lh123 发表于 2021-3-18 23:07
能做个DEMO吗?一段代码没有办法玩。

好的 一会儿发上来

kingzd 发表于 2021-3-19 10:13:13

lh123 发表于 2021-3-19 09:39
用上了。工序调整。
看图

:loap1:现在就是每次调整上下都要保存,不会搞不保存排序。。。我再瞅瞅

13861900516 发表于 2021-3-19 23:49:58

能否搞一个松绑定表格下调整顺序

kingzd 发表于 2021-3-21 12:09:36

13861900516 发表于 2021-3-19 23:49
能否搞一个松绑定表格下调整顺序

我也是个小白。。。没研究出来松绑定排序,因为我也想实现松绑定,现在是退而求其次啦

kingzd 发表于 2021-3-24 08:20:53

lh123 发表于 2021-3-21 14:23
用中间表即可实现。

有个小问题,中间表来展示时候也是提交后才可以排序,没想好怎么把排好的顺序放回原表。。。我这个应用场景原表是经过两次筛选的

qiu123 发表于 2021-4-9 11:51:41

:hjyzw:

qiu123 发表于 2021-4-9 11:52:30

:hjyzw:
页: [1]
查看完整版本: 6.0 分享一个JS调表格行顺序,一条命令绑定即可