2010-09-16 216 views
16

看起来,jqGrid sortnamesortorder属性实际上并不会导致您的数据集被排序 - 它们只会导致显示向上/向下箭头。jqGrid默认排序顺序?

如何让您的数据集在下载时排序?

当您单击列标题但是我希望将默认排序应用于我们的数据时,排序很有效。


更新:当我们点击下一个按钮时,下一个请求会对数据进行排序。

这会导致一个稍有混淆的用户界面,其中数据在列上按向下箭头加载 - 并且数据未排序 - 但是当您单击下一步时,数据现在已排序。

看来,如果我省略了sortname和sortorder,jqGrid仍然显示排序图标 - 很奇怪。

回答

2

尝试使用

$("#list").jqGrid('setGridParam',{ page: 1 }).trigger("reloadGrid"); 

$("#list").jqGrid('setGridParam',{ rowNum: 10 }).trigger("reloadGrid"); 

(替换10,在其定义为的rowNum参数值)。如果它没有帮助,那么在你的问题中发布你的代码。

+0

您是否建议我们加载两次网格?初始负载(未排序)和希望排序的第二个负载? – 2010-09-16 20:57:41

+0

@Marcus:你不会在你的问题中插入任何代码,所以我必须猜测你做了什么。它从服务器加载JSON或XML数据,服务器对数据进行排序,因此您应该修复服务器代码。如果您从本地源加载数据或从服务器加载数据为** unsorted **,并且使用“loadonce:true”,则应该对数据进行一次**排序**。为此,您必须刷新网格当前页面中显示的数据。你可以在'trigger(“reloadGrid”)'方面做到这一点 - 在本地数据的情况下,它只是“刷新”当前页面。有时像'page'或'rowNum'这样的参数可以帮助 – Oleg 2010-09-17 11:15:12

+0

我们使用'loadonce:true'从服务器加载未分类的数据。将尝试'触发...' – 2010-09-17 14:14:48

1

问题是(我相信)请求第一数据集

2

你可能也犯了同样的错误,因为我自己,这是立足我的客户端脚本从古老的当参数sortName也不SIDX读例子用来代替“sortname”“sortName”

+0

这是正确的答案。第一次请求数据时,我的网格正在传递排序条件。属性是sortname和sortorder。 – jfren484 2013-10-18 16:12:59

0

/不好回答警报

为什么不能隐藏图标排序第一次加载?第一次有人排序,取消隐藏,事情按预期工作。听起来好像是你的意图,加载未分类,直到用户选择一个列进行排序。

+0

我有点赞同这个解决方案......第一次使用服务器端代码进行排序,所以它在加载时准确显示,如果你想最初排序。设置默认搜索列或隐藏/显示(http://stackoverflow.com/questions/2601476/is-it-possible-to-hide-or-manipulate-the-jqgrid-sort-icons)排序列后用户决定根据你去哪个方向进行排序。 – 2011-02-19 08:35:20

13

您可能会给两次相同的参数(复制粘贴编程时非常常见的错误:)没有攻击。我做到这一点。)

假定你想通过OpeningDate降序排序

..... options .... 
sortname: "OpeningDate", 
sortorder: "desc", <---- assume you write this line and expect to sort descending 
..... some other options .... 
sortorder: "asc", <---- and this line may also be there but you may not be noticing it 
..... and other options .... 

第二个“排序顺序”选项覆盖第一和

7

我正面临着你将无法降序排序一样的问题。使用此装载数据后:如果布尔值设置为true

$("#tableId").jqGrid('sortGrid','colName', false, 'asc'); 

$("#tableId").sortGrid('colName', false, 'asc'); 

网格被重新加载。 最后一个参数可以是'asc'/'desc',具体取决于排序顺序。