Jquery jqGrid使用结果数组分页

Jquery jqGrid使用结果数组分页,jquery,jqgrid,Jquery,Jqgrid,我一直在使用qith jqGrid 4.3.1,但是我使用了一个额外的javascript方法来填充我的结果(它封装了返回JSON的端点) 有没有一种方法可以直接设置jQGrid中的结果数、页码和可用页面数,并使其正确显示在寻呼机中?然后在寻呼机中设置“箭头”以触发我的“gridreload函数()” Javascript: $j('#searchResultsGrid').jqGrid({ pager: '#gridpager', rowNum: 100,

我一直在使用qith jqGrid 4.3.1,但是我使用了一个额外的javascript方法来填充我的结果(它封装了返回JSON的端点)

有没有一种方法可以直接设置jQGrid中的结果数、页码和可用页面数,并使其正确显示在寻呼机中?然后在寻呼机中设置“箭头”以触发我的“gridreload函数()”

Javascript:

$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>