jqgrid中的动态列数据,客户端排序和服务器分页

时间:2013-05-17 00:37:48

标签: jquery jqgrid

我是第一次尝试从服务器加载动态列数据和列名,还使用服务器端分页。

问题是当我在jqgrid AJAX调用(第二个)中使用数据类型:'local'时,显示数据并禁用服务器端分页。但是当我在AJAX调用中使用数据类型:'json'时,不会显示任何数据。

请帮助我获得一个简单明了的解决方案,以实现动态列绑定,客户端排序和服务器端分页。

$(document).ready(function() {
                    $.ajax({
                                type : "POST",
                                url : contextPath + "/getEntities",
                                dataType : "json",
                                success : function(result) {
                                    var colD = result.response,
                                    colM = result.colModList,
                                    colN = result.colNames;

                                    $("#list").jqGrid({
                                        url : contextPath + "/getEntities",
                                        datatype : 'json',
                                        mtype : 'POST',

                                        data : colD,
                                        colNames : colN,
                                        colModel : colM,
                                        pager : '#pager',
                                        rowNum : 10,
                                        rowList : [ 10, 20, 30 ],
                                        sortname : 'column1',
                                        sortorder : 'asc',
                                        viewrecords : true,
                                        gridview : true,
                                        caption : 'My first grid',
                                    });

                                },
                                loadComplete : function() {
                                    $("#list").jqGrid('setGridParam',{datatype:'json'});
                                },

                                error : function(x, e) {
                                    alert(x.readyState + " " + x.status
                                            + " " + e.msg);
                                }
                            });
                });

从服务器收到的JSON数据没有问题,因为我能够在数据类型:'local'设置时看到数据(在第二次AJAX调用中)。如果有人提供一个有效的例子,这将是一个很大的帮助。

另一个问题是我的想法,为什么要重新加载网格以及如何做到这一点。放置重新加载代码的位置。我没有得到这一部分。

非常感谢任何帮助。

更新:已发布答案。 适用于使用服务器端分页实现动态列。

1 个答案:

答案 0 :(得分:0)

工作代码:

execute("UPDATE ...");
if (connection.Changes == 0) {
    execute("INSERT ...");
}