Jquery jqGrid使用结果数组分页
我一直在使用qith jqGrid 4.3.1,但是我使用了一个额外的javascript方法来填充我的结果(它封装了返回JSON的端点) 有没有一种方法可以直接设置jQGrid中的结果数、页码和可用页面数,并使其正确显示在寻呼机中?然后在寻呼机中设置“箭头”以触发我的“gridreload函数()” Javascript:Jquery jqGrid使用结果数组分页,jquery,jqgrid,Jquery,Jqgrid,我一直在使用qith jqGrid 4.3.1,但是我使用了一个额外的javascript方法来填充我的结果(它封装了返回JSON的端点) 有没有一种方法可以直接设置jQGrid中的结果数、页码和可用页面数,并使其正确显示在寻呼机中?然后在寻呼机中设置“箭头”以触发我的“gridreload函数()” Javascript: $j('#searchResultsGrid').jqGrid({ pager: '#gridpager', rowNum: 100,
$j('#searchResultsGrid').jqGrid({
pager: '#gridpager',
rowNum: 100,
height: 415,
width: 765,
colNames: ['Action','First Name','Last Name','Email','Type of Record','Company','Account Name'],
colModel: [
{
name:'Invite',
index:'Invite',
width:50,
align: 'center',
sortable:false},
{
name: 'FirstName',
index: 'FirstName',
width: 75
}, {
name: 'LastName',
index: 'LastName',
width: 75
},{
name: 'Email',
index: 'Email',
width: 100
}, {
name: 'Type',
index: 'Type',
width: 75
},{
name: 'Company',
index: 'Company',
width: 100
},{
name: 'AccountName',
index: 'AccountName',
width: 100
}],
//add the buttons for adding
gridComplete: function(){
...
}
}
});
/* Wrapper Method for Endpoint */
methodController.searchLeadsContacts($j('#searchTerm').val(),pageNum,function(event,result){
$j.each(result.result.searchResults, function(i, record){
var rowData = [{
'Id': record.Id,
'FirstName': record.FirstName,
'LastName': record.LastName,
'Email': record.Email,
'Type': record.Type,
'Company': record.Company,
'AccountName': record.AccountName
}];
$j('#searchResultsGrid').jqGrid('addRowData', record.Id, rowData[0]);
});
$j('#searchResultsGrid').setGridParam({ rowNum: 100 }).trigger("refresh");
HTML:
永远不要使用旧的
addRowData
,尤其是在循环中。除了您描述的问题之外,addRowData
是填充网格最慢的方法,因为每次修改页面时,都应该重新计算页面上所有现有元素(甚至之前添加的行)的位置
您应该做的是使用jqGrid的data
参数来创建包含数据的网格。如果使用gridview:true
(我的默认选项),则网格的内容将在一次操作中放置在网格中
或者,您可以对数据使用datatype:'jsonstring'
和datastr
。在这种情况下,datastr
的值可以是object,而不仅仅是JSON字符串
如果从服务器加载数据,并且可以使用
jQuery.ajax
传输数据,则应使用datatype:'json'
。jqGrid为您提供了许多定制的可能性,因此您可以实际实现jqGrid为您的内部所做的Ajax请求。谢谢@Oleg,我将删除循环中的“addRowData”,并尝试将数组(在我处理后)直接应用于jqGrid,并使用触发器('gridreload')代码>重新加载it@jordan.baucke:只有在设置数据
参数后调用刷新索引
方法才很重要。(见附件)
<table id="searchResultsGrid"></table>
<div id="gridpager"></div>