正确的页面jqGrid方式

时间:2013-01-09 15:07:52

标签: jqgrid jqgrid-asp.net

我需要显示一些"动态"使用jqGrid的网格。通过动态我的意思是从数据库中检索网格的定义和数据。页面上有很多网格,所以我试图最小化服务器出行次数,并且有很多数据,所以服务器端分页是必须的。

我的工作流程是

  • 在初始化每个网格时,首先检索网格定义 一个服务器调用中的数据页面。
  • 如果用户对/页面进行排序,则从服务器检索一页数据

因为我想在一次调用中检索网格定义和第一页数据,所以我不能使用数据类型:' json',url:' ###'办法;相反,我做:

grid.jqGrid({
    mtype: 'post',
    ...        
    datatype: function (postdata) {
        if (!init.data) {
            var request = {
                screenId: settings.screenId,
                pageNumber: postdata.page,
                pageSize: postdata.rows,
                sortColumn: postdata.sidx,
                sortDirection: postdata.sortd,
                date: settings.date
            };
            site.callWs("/MyService", request, function (pageResponse) {
                //WHAT TO CALL HERE TO SET A PAGE OF DATA?
            });
        } else {
            //WHAT TO CALL HERE TO SET A PAGE OF DATA?
            init.data = null;
        }
    }
});

我的数据对象(pageResponse或init.data)看起来像这样

Data Object

一旦返回一页数据,我不确定在jqG​​rid上调用什么方法。我考虑过addJSONData,但是将JSON转换回字符串似乎效率很低,然后使用EVAL()。此外,考虑addRowData或设置数据属性,但我很困惑如何指示jqGrid我正在做服务器端分页 - 如果我将数据属性设置为一个记录页面,我需要做些什么才能告诉jqGrid共有50条记录,这是第1页中的第1页。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这是用户错误(我的:)。我在jqGrid的loadComplete中有一些show / hide逻辑,但是当调用addJSONData时,这个事件不会触发。

当提供正确结构的JavaScript对象时,addJSONData可以正常工作。