jQuery MiniUI

 找回密码
 立即注册
查看: 2051|回复: 7
打印 上一主题 下一主题

allowsort [复制链接]

Rank: 6Rank: 6

跳转到指定楼层
楼主
发表于 2014-6-11 15:19:36 |只看该作者 |倒序浏览

在datagrid 中有RepairedTimeLasts一列
function ondrawcell(e) {

    if (e.field == "RepairedTimeLasts") {

                var a = e.row.RepairedTime.getTime()
                var b = e.row.AccidentOccurTime.getTime();
                var m = a - b;
                var lasttime = GetAdvanceTime(m);
                e.cellHtml = lasttime;
            }
}


  function GetAdvanceTime(timespanms) {

            var timespanh = timespanms / 3600000;
            var result = "";
            if (timespanh < 1 && timespanh >= 0) {
                result = (timespanms / 60000).toFixed(0) + "分钟";
            } else if (timespanh >= 1 && timespanh < 24) {
                result = timespanh.toFixed(0) + "小时";
            } else if (timespanh >= 24) {
                result = Math.floor((timespanh / 24)) + "天" + (timespanh % 24 == 0 ? "" : (timespanh % 24).toFixed(0) + "小时");
            } else {

            }
            return result;
        }


对于这RepairedTimeLasts这一列,我先在前端这边实现allowsort="true",我实现的排序是没有顺序的????请教一下这个怎么解决呢????




Rank: 8Rank: 8

沙发
发表于 2014-6-11 15:39:11 |只看该作者
排序默认服务端排序,你后台有处理了排序没? 没处理,自然就没排序效果了

Rank: 6Rank: 6

板凳
发表于 2014-6-12 09:39:41 |只看该作者
factory 发表于 2014-6-11 15:39
排序默认服务端排序,你后台有处理了排序没? 没处理,自然就没排序效果了

我这一列是在前台得到的, if (e.field == "RepairedTimeLasts") {

                var a = e.row.RepairedTime.getTime()
                var b = e.row.AccidentOccurTime.getTime();
                var m = a - b;
                var lasttime = GetAdvanceTime(m);
                e.cellHtml = lasttime;
            }
}

Rank: 6Rank: 6

地板
发表于 2014-6-12 09:50:13 |只看该作者
小葱儿 发表于 2014-6-12 09:39
我这一列是在前台得到的, if (e.field == "RepairedTimeLasts") {

                var a = e.row.Repai ...

我后天是根据  order by  RepairedTime  desc 排序的,我前台的这一行是根据

if (e.field == "RepairedTimeLasts") {

                var a = e.row.RepairedTime.getTime()
                var b = e.row.AccidentOccurTime.getTime();
                var m = a - b;
                var lasttime = GetAdvanceTime(m);
                e.cellHtml = lasttime;
            }

得到的,那么我该怎么对 if (e.field == "RepairedTimeLasts")  field=RepairedTimeLasts的这一行排序呢?

Rank: 6Rank: 6

5#
发表于 2014-6-12 10:00:08 |只看该作者
小葱儿 发表于 2014-6-12 09:50
我后天是根据  order by  RepairedTime  desc 排序的,我前台的这一行是根据

if (e.field == "RepairedTi ...


点击图片中的小三角没有起到排序效果?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

6#
发表于 2014-6-12 10:11:44 |只看该作者
小葱儿 发表于 2014-6-12 10:00
点击图片中的小三角没有起到排序效果?

文本不等同于 表格数据的单元格值.  你后台orderby的排序,是对表格值的排序,并不是你渲染后的文本内容排序

Rank: 6Rank: 6

7#
发表于 2014-6-12 10:20:32 |只看该作者
factory 发表于 2014-6-12 10:11
文本不等同于 表格数据的单元格值.  你后台orderby的排序,是对表格值的排序,并不是你渲染后的文本内容排 ...

我我想对这个排序是不能实现的,是吧

Rank: 8Rank: 8

8#
发表于 2014-6-12 10:32:36 |只看该作者
小葱儿 发表于 2014-6-12 10:20
我我想对这个排序是不能实现的,是吧

你order by 是对数据库里面的值的排序, 跟表格内容又无关, 你这个时间排序全部错乱掉了,说明你本身对数据库内容的order by出来的顺序就是错了.

Archiver|普加软件

GMT+8, 2024-5-15 15:33 , Processed in 1.032772 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部