如何为jqGrid制作动态寻呼机

时间:2014-10-14 11:26:09

标签: jquery jqgrid

在JqGrid中,我们如何根据返回的总记录设置rowList?默认设置为rowList:[10,20,30],

我想按照记录的数量设置它,例如,如果返回的总记录数为50,则我的rowList应该是 rowList:[10,20,30,40,50],如果有20条记录,则应为rowList:[10,20],

我可以看到总记录在JSON对象中返回,我可以将其作为

jQuery("#myGrid").jqGrid('getGridParam', 'records');

var records = jQuery(grid_selector).jqGrid('getGridParam', 'records');
console.log('recods:',records);
jQuery(grid_selector).jqGrid('setGridParam', {rowList: [10,20,30,50]});
var rowList = jQuery(grid_selector).jqGrid('getGridParam', 'rowList');
console.log('rowList:',rowList);
// Above code works
jQuery(grid_selector).trigger('reloadGrid'); 
// Reload grid does not work

2 个答案:

答案 0 :(得分:0)

如果您可以通过以下方式获取记录:

jQuery("#myGrid").jqGrid('getGridParam', 'records');

然后:

 function make_array(count)
{
var record_count=count;
var record_array=[]

for(i=10;i<=record_count;i+=10)
{
record_array.push(i);
}

return "rowlist:["+record_array.valueOf()+"]";
}

示例:

http://fiddle.jshell.net/y0kmo6ss/1/

答案 1 :(得分:0)

我不确定我是否理解正确。如果您希望jqGrid在一个页面上显示所有记录,则只需将rowNum值设置为足够大的值(例如rowNum: 10000)。基于rowList构建的选择中显示的值允许用户更改页面大小。如果用户更改了值,则会向服务器填写新请求(如果您不使用本地datatype),则rowNum值将被更改,并且数据页面将从服务器

所以你可以使用足够大的rowNum值。您可以考虑删除寻呼机中不需要的元素(请参阅the documentation)。如果您想为用户提供显示所有数据的可能性,您只需在rowList数组中提供足够大的值即可。例如

rowNum: 10,
pager: "#mypager",
rowList: [5, 10, 20, 50, 10000]

通过执行以下行

,可以让用户看起来更大“10000”
$("#mypager option[value=10000]").text("All");

mypagerpager的ID。以上行只会更改选项中选项的文本。因此<option> value="10000" All将包含10000而不是{{1}},这对用户来说更为舒适。