如何使用通用处理程序在jqGrid中实现服务器端分页

时间:2013-09-04 15:55:19

标签: c# jqgrid

我正在尝试为jqGrid实现分页。但是我不清楚我是否可以在asp.net中使用通用处理程序来完成它?

我的网格看起来像这样:

布局:

<table id="userGrid" ></table>
<div id="userGridPager"></div>

脚本:

grid = $("#userGrid");
        grid.jqGrid({
            url: 'http://localhost/MyApp/MyHandler.ashx',
            datatype: "json",
            colNames: ['Id', 'Name', 'Account', 'Deleted', 'Timer'],
            colModel: [
                { name: 'Id', index: 'Id', width: 50, stype: 'text', key: true },
                { name: 'Name', index: 'Name', width: 150, editable: true},
                { name: 'Account', index: 'Account', width: 50, editable: false },
                { name: 'Deleted', index: 'Deleted', width: 50, editable: true, sortable: false, align: 'center', edittype: 'checkbox', editoptions: { value: "True:False" }, formatter: "checkbox", formatoptions: {disabled : false} },
                { name: 'Timer', index: 'Timer', width: 80, align: "right", editable: true }                     
            ],                
            rowNum: 15,
            mtype: 'GET',
            pager: '#userGridPager',
            sortname: 'id',
            viewrecords: true,
            sortorder: "desc",
            caption: "Users",
            height: "100%"                
        });

MyHandler.ashx:

public class MyHandler: IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
// how can i get here page number?

var users = User.GetAllUsers(); // it's necessary to pass page number and page size to this function
var jsonSerializer = new JavaScriptSerializer();
context.Response.Write(jsonSerializer.Serialize(users));
}
}

我知道我需要将我的数据传递给客户端,以便它包含jsonReader的页面,总数,记录,但我不明白如何获取habdler中的页码。有人知道答案吗?

1 个答案:

答案 0 :(得分:0)

使用这种方法,您可以在GET请求的查询字符串中使用页码编号。

WebApp/MyHanler.ashx?page=2

如何获取查询字符串参数,您可以在此处看到:How to get the QueryString from an ashx file?