如何显示jqGrid中的所有行?

Jon*_*son 47 javascript jquery jqgrid rowcount

jqGrid公开了一个属性rowNum,您可以在其中设置要为每个页面显示的行数.如何将网格设置为仅显示所有行?

现在我只是设置了rowNum一个非常高的东西,<%= int.MaxValue %>但我想知道是否有更好的方法.

Jus*_*ier 53

在最新版本的jqGrid中,您可以将rowNum设置为-1以指示网格始终显示所有行:

rowNum: -1
Run Code Online (Sandbox Code Playgroud)

请在此处查看最新的jqGrid文档.

特别:

设置我们要在网格中查看的记录数.此参数传递给url以供检索数据的服务器例程使用.请注意,如果将此参数设置为10(即检索10条记录)并且服务器返回15,则只会加载10条记录.将此参数设置为-1(无限制)以禁用此检查.


更新

不幸的是,这种行为在jqGrid 3.6.3中被破坏了.根据托尼的这篇文章:

是的,这是真的.原因是新推出的卷轴:1.将来我们会纠正这种行为.

因此,jqGrid开发人员已经意识到这个问题,并且显然正计划在将来的版本中修复它.不幸的是这篇帖子是一年多以前的...

在这个时候,我所能推荐的就是你设置rowNum了一个非常大的数字来模拟行为-1.


您还可以尝试使用下面的whatispunk解决方案rowNum: ''.但是,我在包含本地数据(loadonce: true)的网格上尝试了这个.在尝试对行进行排序时,所有网格的本地数据都将消失.因此,对于具有本地数据的网格,此解决方案似乎不起作用,除非在更高版本的jqGrid中修复了此缺陷(我在jqGrid 3.8.2上测试过它).如果您有任何反馈意见,请在下面发表评论!


更新 - 2014年4月16日

根据jqGrid团队的说法,现在已修复:

我已添加支持在寻呼机选择框上设置不同的显示值,包括-1为所有.

不过,我没有机会测试确认修复.据推测,此更改将在jqGrid 4.6.0之后的下一个版本中进行.

  • 如果你设置rowNum:''你得到所有行. (3认同)

小智 9

jqgrid(无论如何)3.5似乎没有一个优雅的内置方式来做到这一点.到目前为止,我发现的最好的方法是在网格选项中添加以下内容:

rowList:[10,20,30,100000000],
loadComplete: function() {
    $("option[value=100000000]").text('All');
},
Run Code Online (Sandbox Code Playgroud)

其中100000000比你将返回的最大行数高出一些任意数字,而选项[value =]行是这样你的用户界面看起来更好一些.Jenky,但对我有用.


Ane*_*ran 5

这有效:

// Step1 - defines the rows
jqGridOptions.rowList =[10, 50, 100, 500, 'All'];
...
...
// Step2 - Change the 'All' to a meaningful value 
loadComplete: function (data) {
   $(".ui-pg-selbox option[value='All']").val(1000);
}
Run Code Online (Sandbox Code Playgroud)