填报预览点击各列标题均可按点击列排序问题(其中有非数值类型和可为空字段)

如上述问题,我在模板Web属性设置了填报页面加载结束事件,但是填报预览的时候并没能实现排序功能,不知道咋回事,求大神指点迷津。代码如下(从帮助文档上复制来的):
//排序的方法,参数为表的id和列
function sortTable(table, idx) {
  var otable = document.getElementById(table),
    otody = otable.tBodies[0],
    otr = otody.rows,
    tarr = [];
  for (var i = 1; i < otr.length; i++) {
    tarr[i - 1] = otr;
  };
  if (otody.sortCol == idx) {
    tarr.reverse();
  } else {
    tarr.sort(function (tr1, tr2) {
      var value1 = tr1.cells[idx].innerHTML;
      var value2 = tr2.cells[idx].innerHTML;
      if (!isNaN(value1) && !isNaN(value2)) {
        return value1 - value2;
      } else {
        return value1.localeCompare(value2);
      }
    })
  }
  var fragment = document.createDocumentFragment();
  for (var i = 0; i < tarr.length; i++) {
    fragment.appendChild(tarr);
  };
  otody.appendChild(fragment);
  otody.sortCol = idx;
}

//获取到页面中表头,设置点击事件  
    $("#r-0-0 td").bind("click", function() {
        //获取到点击的列索引  
        var index = $(this).parents("tr").find("td").index($(this));
        //获取class=page-block的div中的table的id
        var tableID = $("div.page-block table").attr("id");
        //调用排序的方法,进行传值,0是这个表的id,可以通过F12获取到表的id  
        sortTable(tableID, index);
    });
FineReportlinzycc 发布于 2018-9-27 11:27
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
axing发布于2018-9-27 11:27(编辑于 2023-9-6 09:34)
555
最佳回答
0
linzycc发布于2018-9-27 12:18(编辑于 2023-9-6 09:34)
555
最佳回答
0
linzycc发布于2018-9-27 14:48(编辑于 2023-9-6 09:34)
555
  • 永恒的曼联 永恒的曼联 我尝试用你的方法,每次都说数据库配置错误
    回复
    2019-01-24 18:01 
  • winniesmf winniesmf 回复 永恒的曼联 要设置初始值,第一次没有值会报数据库错误
    回复
    2020-01-08 16:10 
  • 1关注人数
  • 484浏览人数
  • 最后回答于:2018-9-27 14:48
    活动推荐 更多
    热门课程 更多
    返回顶部