jQuery MiniUI

标题: datagrid点击表头自定义排序问题 [打印本页]

作者: dragon    时间: 2013-5-17 13:58:23     标题: datagrid点击表头自定义排序问题



  怎么 datagrid点击表头自定义排序问题。
我是  添加了 onheadercellclick 事件,,但是他怎么还是到服务器端查找一个。。
onheadercellclick="onDataGridHeadercellclick"

或者有什么好的方案 。。  
不要推荐我用你们自带的排序了 。。我取出来的数据格式和你们那个有差别。所有就自己排序了。

  1. function onDataGridHeadercellclick(sender, // 表格对象
  2.                         column)
  3. {
  4.         alert("headercelclick--排序:"+sender.column.allowSort+" 待完成");
  5.         alert(sender.column.dataType);
  6.        
  7.    


  8. }
复制代码



作者: factory    时间: 2013-5-17 14:09:20

grid.sortBy ( sortField, sortOrder )

sortField随便传哪个字段

作者: dragon    时间: 2013-5-17 14:54:59

factory 发表于 2013-5-17 14:09
grid.sortBy ( sortField, sortOrder )

sortField随便传哪个字段

说了啊 。。我用的不是你们的 url形式加载数据的哦 。。
setData方法   所以应该不能用这个方法的吧
作者: factory    时间: 2013-5-17 15:26:24

dragon 发表于 2013-5-17 14:54
说了啊 。。我用的不是你们的 url形式加载数据的哦 。。
setData方法   所以应该不能用这个方法的吧 ...

那你自己监听表格的点击表头事件,然后用ajax交互吧,把你自己需要的 排序字段,发送到服务端,然后服务端接受之后,返回一个排序好的数据,然后setData()

等于是你完全自己处理
作者: dragon    时间: 2013-5-17 16:10:30

factory 发表于 2013-5-17 15:26
那你自己监听表格的点击表头事件,然后用ajax交互吧,把你自己需要的 排序字段,发送到服务端,然后服务 ...

是啊  关键这个事件怎么写啊 。。 我监听了 但是他还是执行了你们代码里面的服务器区提交 。
是不是事件往下传递了 。。怎么处理 给点代码吧。

headercellclick事件 执行玩 还是进行提交
作者: factory    时间: 2013-5-17 16:36:32

dragon 发表于 2013-5-17 16:10
是啊  关键这个事件怎么写啊 。。 我监听了 但是他还是执行了你们代码里面的服务器区提交 。
是不是事件 ...

你是不是给列设置了 allowSort="true" 啊?

如果设置了,当你点击头部的时候,当然会触发服务端的代码,因为如果给某一列设置了allowSort="true" 这个,我们默认会把你点击的字段传到后台去进行排序的。
你设置为false之后,再点击就不会跑去后台了
作者: dragon    时间: 2013-5-20 08:08:39

factory 发表于 2013-5-17 16:36
你是不是给列设置了 allowSort="true" 啊?

如果设置了,当你点击头部的时候,当然会触发服务端的代码, ...

但是服务器端排序  是我自己操作的 啊 。。 我使用的setData操作的 。。。。。
作者: niko    时间: 2013-5-20 09:02:59

1.服务端排序:http://www.miniui.com/demo/#src=datagrid/sorting.html
2.客户端排序:http://www.miniui.com/demo/#src=datagrid/sorting_client.html
就这两种排序,你挑一个就可以了。
作者: dragon    时间: 2013-5-20 09:48:53

niko 发表于 2013-5-20 09:02
1.服务端排序:http://www.miniui.com/demo/#src=datagrid/sorting.html
2.客户端排序:http://www.miniui. ...

读说了   我们现在不用你们提供的排序 因为你们那个排序需要固定格式 。但是现在我们有自己的统一数据库格式。。 所以要自己实现  点击表头排序。。 想你们给点建议。。。。哦  
作者: factory    时间: 2013-5-20 10:07:08

dragon 发表于 2013-5-20 09:48
读说了   我们现在不用你们提供的排序 因为你们那个排序需要固定格式 。但是现在我们有自己的统一数据库 ...

你用setData()的话,自己把setData()的数据处理好了排序顺序再setData(),该如何排序,还是你自己处理,我们提供的只有这2种方式,点哪个头部就排序哪一列
作者: dragon    时间: 2013-5-22 15:53:31

factory 发表于 2013-5-20 10:07
你用setData()的话,自己把setData()的数据处理好了排序顺序再setData(),该如何排序,还是你自己处理,我 ...

是啊  我就是需要这样处理 ,但是你们的 headerclick事件有点问题 。。  就是处理了这个事件函数后,居然还是请求服务器端了 。  怎么让他事件不在往下传呢 。。  设置客户端排序 不会服务器端请求。   我现在是需要排序为服务器端排序,但是又不会调用你们的服务器端排序,就像你回答的那样。   关键的问题是 怎么让他事件不在往下传呢 。。  
作者: factory    时间: 2013-5-22 16:00:07

dragon 发表于 2013-5-22 15:53
是啊  我就是需要这样处理 ,但是你们的 headerclick事件有点问题 。。  就是处理了这个事件函数后,居然 ...

我之前不是说了么,你有没有给你点的那个一列设置了 allowSort  ,你把这个去掉,就不会有后台请求了

这只是一个事件,怎么可能会主动去请求后台呢,请求后台肯定是你列上面设置了allowSort ,所以当你点击列头的时候,会把这一列的field信息传递到后台去,因为这个是我们默认的一个排序。
[attach]1983[/attach]

onheadercellclick="alert(1)"  根本没后台的请求

作者: dragon    时间: 2013-5-22 16:04:20

factory 发表于 2013-5-22 16:00
我之前不是说了么,你有没有给你点的那个一列设置了 allowSort  ,你把这个去掉,就不会有后台请求了

这 ...

好的 。。 我之前本来想通过后台设置  设置列支持排序通过这个字段的 。 换个字段就可以了 。。。多谢

那我怎么再排序后 为表头 设置 升序或者降序的图标呢
作者: factory    时间: 2013-5-22 16:17:57

dragon 发表于 2013-5-22 16:04
好的 。。 我之前本来想通过后台设置  设置列支持排序通过这个字段的 。 换个字段就可以了 。。。多谢

...

onheadercellclick="headerclick"
  1. function headerclick(e) {
  2.             var column = e.column;
  3.             grid.updateColumn(column, { header: column.header + '<span class="mini-grid-sortIcon"></span>' })
  4.         }
复制代码
试试,这个只是大概的代码,还要处理下 上箭头 换 下箭头
我给你的 <span class="mini-grid-sortIcon"></span> 这个是miniui的箭头,我们是通过修改背景的background-position来实现替换  上下箭头的,你可以自己处理下
作者: dragon    时间: 2013-5-22 16:21:05

factory 发表于 2013-5-22 16:17
onheadercellclick="headerclick"试试,这个只是大概的代码,还要处理下 上箭头 换 下箭头
我给你的  这 ...

好的 我试试。。。多谢 。。亲 ~~~
作者: dragon    时间: 2013-5-22 16:38:44

dragon 发表于 2013-5-22 16:21
好的 我试试。。。多谢 。。亲 ~~~

恩  标题 排序图标出来了 。。 要想处理另外一个图标 CSS样式是怎么写的啊 。。谢谢哦 . 那这个我还要处理 .点击其他列排序 . 就需要去掉另外一个列排序标题样式
作者: factory    时间: 2013-5-22 16:53:19

dragon 发表于 2013-5-22 16:38
恩  标题 排序图标出来了 。。 要想处理另外一个图标 CSS样式是怎么写的啊 。。谢谢哦 . 那这个我还要处 ...

最简单的方式,你再写个向下箭头的CSS,然后修改下<span class="向下箭头的样式">不就可以了么
作者: dragon    时间: 2013-5-23 08:44:37

factory 发表于 2013-5-22 16:53
最简单的方式,你再写个向下箭头的CSS,然后修改下不就可以了么

不会写哦 ~~~ 。 你发我的那个点一次 就加了一个箭头   怎么移除原来的箭头啊
作者: factory    时间: 2013-5-23 09:38:10

dragon 发表于 2013-5-23 08:44
不会写哦 ~~~ 。 你发我的那个点一次 就加了一个箭头   怎么移除原来的箭头啊  ...

在替换下e.cellHtml 不就可以了么。。。用个判断什么的
作者: dragon    时间: 2013-5-23 10:41:16

factory 发表于 2013-5-23 09:38
在替换下e.cellHtml 不就可以了么。。。用个判断什么的

我的意思是   升序和降序的 图标样式 是怎么写的 <span class="mini-grid-desc mini-grid-sortIcon"></span> 这个怎么还是出现的升序的图标呢
作者: factory    时间: 2013-5-23 13:50:33

dragon 发表于 2013-5-23 10:41
我的意思是   升序和降序的 图标样式 是怎么写的  这个怎么还是出现的升序的图标呢  ...

上下按钮是一张图上面的,修改了mini-grid-sortIcon 样式的 background-position 来实现不同的图片
作者: dragon    时间: 2013-5-23 14:07:57

factory 发表于 2013-5-23 13:50
上下按钮是一张图上面的,修改了mini-grid-sortIcon 样式的 background-position 来实现不同的图片 ...

我知道 怎么调用你们已经写好的样式 class怎么写 。。。。。。。我CSS 不太会  你直接发我下  class=""就好了哈  多谢多谢
作者: factory    时间: 2013-5-23 14:25:40

dragon 发表于 2013-5-23 14:07
我知道 怎么调用你们已经写好的样式 class怎么写 。。。。。。。我CSS 不太会  你直接发我下  class=""就 ...

你自己额外再写个<span class="mini-desc">好了

图片的背景改为background: url("images/grid/icons.png") no-repeat -19px 0;
其他都一样




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