jQuery MiniUI

标题: 请问表格是否存在客户端排序。 [打印本页]

作者: lixiaoliang7    时间: 2012-9-21 08:25:21     标题: 请问表格是否存在客户端排序。

如题,我希望点击列表头,直接客户端排列,请问应如何做

作者: lixiaoliang7    时间: 2012-9-21 08:32:34

http://www.miniui.com/demo/#src=datagrid/datagrid.html
照着这个demo排序竟然排不了。。。
我要排序的字段都是经过ondrawcell处理过的,请问还可以排序吗
作者: factory    时间: 2012-9-21 09:56:01

lixiaoliang7 发表于 2012-9-21 08:32
http://www.miniui.com/demo/#src=datagrid/datagrid.html
照着这个demo排序竟然排不了。。。
我要排序的字 ...

客户端排序的话,你应该参考这个例子:
http://miniui.com/demo/#src=datagrid/sorting_client.html
作者: lixiaoliang7    时间: 2012-9-21 12:20:23

建议能否给demo加个检索功能? 总是找不到自己想要的东西。。
作者: lixiaoliang7    时间: 2012-9-21 13:46:56

[attach]669[/attach]
这是我的表单,怎么使用客户端排序,总会排序失败。(可以看我的这个图片,点击比规定时,降序失败了)
用的是data=float,另外,这几个列都是使用ondrawcell事件计算出来的,可能有空和0记录。

作者: niko    时间: 2012-9-21 18:29:18

网站示例是可以的,你仔细看下。
作者: lixiaoliang7    时间: 2012-9-24 07:30:19

本帖最后由 lixiaoliang7 于 2012-9-24 07:32 编辑

抱歉,还是有问题…

http://localhost:3598/miniui_net/demo/index.html#src=datagrid/sorting_client.html
我拿这个demo进行了测试,首先进行了改造,对datagrid添加了onDrawCell方法,方法如下:
   function onDrawCell(e) {

            if (e.field == "salary") {
                if (e.record.salary == 2900) {
                    e.cellHtml = "";
                }
            }

        }

目的是修改了一个空字符串列。问题如下:1、点击薪资列进行排序,发现无论是升序还是降序都会出现问题…
[attach]676[/attach]

2、然后点击员工帐号列进行排序,发现每次都是点了两次后才会重新排序一次。


作者: lixiaoliang7    时间: 2012-9-24 07:32:34

lixiaoliang7 发表于 2012-9-24 07:30
抱歉,还是有问题…

http://localhost:3598/miniui_net/demo/index.html#src=datagrid/sorting_client.htm ...

第一个问题,我猜可能官方是对OnDrawCell处理前的数据进行了排序。但往往ondrawcell处理却是很常见的
作者: niko    时间: 2012-9-24 09:09:28

表格排序的标准,是通过实际数据进行的,你通过drawcell绘制,只是显示的内容,不会参与到排序逻辑。
点击两次排序,是个小BUG,正在修复,下面小版本发布。
作者: lixiaoliang7    时间: 2012-9-24 10:38:07

niko 发表于 2012-9-24 09:09
表格排序的标准,是通过实际数据进行的,你通过drawcell绘制,只是显示的内容,不会参与到排序逻辑。
点击 ...

我们使用成熟的JS框架的原因之一,就是想把服务器端的某些逻辑放入客户端中以减轻服务器端的压力。
所以我觉得ondrawcell后再进行排序是一个要求不高的需求…
作者: niko    时间: 2012-9-24 17:15:04

如果你在drawcell事件中,e.cellHtml = '<a>ddd</a>';
是一个HTML内容,我们怎么排序?




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2