简体   繁体   English

如何在JQGRID中应用自定义分页

[英]How to apply Custom Paging in JQGRID

I have a Jqgrid, In my MVC view, there is no problem in displaying the data in the grid. 我有一个Jqgrid,在我的MVC视图中,在网格中显示数据没有问题。 But I want to apply the custom paging in the grid, so i have created the method in my controller which takes two parameters (pageNumber and rowSize) and returns the data based on the these two parameters. 但是我想在网格中应用自定义分页,因此我在控制器中创建了该方法,该方法接受两个参数(pageNumber和rowSize)并基于这两个参数返回数据。 Now my question is that how can i send these two property of grid to the controller and get the changes reflected on the grid. 现在我的问题是如何将网格的这两个属性发送到控制器,并使更改反映在网格上。

Note: i also tried to send the value of rowSize using ajax on the button click but after executing the code in the server there is no changes in the grid(as i expected). 注意:我也尝试在按钮单击时使用ajax发送rowSize的值,但是在服务器中执行代码后,网格中没有任何变化(正如我期望的那样)。

View: 视图:

<table id="jQGridDemo">
</table>
<div id="jQGridDemoPager">
</div>
<script type="text/javascript">
    jQuery("#jQGridDemo").jqGrid({

        datatype: "json",
        colNames: ['Id', 'First Name', 'Last Name', 'Last 4 SSN', 'Department',
                'Age', 'Salary', "Address", 'Marital Status'],
        colModel: [
                 { name: 'ID', index: '_id', width: 20, stype: 'text' },
                 { name: 'FirstName', index: 'FirstName', width: 150 },
                 { name: 'LastName', index: 'LastName', width: 150 },
                 { name: 'LastSSN', index: 'LastSSN', width: 100 },
                 { name: 'Department', index: 'Department', width: 80, align: "right" },
                 { name: 'Age', index: 'Salary', width: 80, align: "right" },
                 { name: 'Salary', index: 'Salary', width: 80, align: "right" },
                 { name: 'Address', index: 'Address', width: 150, sortable: false },
                 { name: 'MaritalStatus', index: 'MaritalStatus', width: 100, sortable: false }
               ],
        rowNum: 10,
        loadonce: false,
        rowList: [5, 10, 20, 50],
        pager: "#jQGridDemoPager",
        height: "100%",
        sortname: 'ID',
        viewrecords: true,
        sortorder: "desc",
        caption: "List Employee Details",
        url: '/Home/Records'
    });

    $(".ui-pg-input").click(function () {

        alert(this.value);
        $.ajax({
            type: 'POST',
            url: window.location + "Home/Records",
            data: {
                pageNumber: this.value
            },
            success: function (data) {
                alert("ajax call completed");
            },
            error: function () {
                alert("Something went Wrong");
            }
        });
    })
</script>

Controller 调节器

 public JsonResult Records(int pageNumber=3, int rowSize = 5)
 {
     // code for custom paging
     return json;
 }

JSON Returned from Server: 从服务器返回的JSON:

[{"ID":1,"FirstName":"Alan","LastName":"Donald","LastSSN":"123","Department":"Bowler","Age":"44 ","Salary":"1000000 ","Address":"South Africa","MaritalStatus":"Married ","EntityState":2,"EntityKey":{"EntitySetName":"tbl_Details","EntityContainerName":"JQGridDBEntities","EntityKeyValues":[{"Key":"ID","Value":1}],"IsTemporary":false}},{"ID":2,"FirstName":"Donald","LastName":"Duck","LastSSN":"345","Department":"Actor","Age":"98 ","Salary":"2000000 ","Address":"USA","MaritalStatus":null,"EntityState":2,"EntityKey":{"EntitySetName":"tbl_Details","EntityContainerName":"JQGridDBEntities","EntityKeyValues":[{"Key":"ID","Value":2}],"IsTemporary":false}},{"ID":3,"FirstName":"Virat","LastName":"Kohli","LastSSN":"111","Department":"Batsman","Age":"28 ","Salary":"1000000 ","Address":"India","MaritalStatus":"Unknown ","EntityState":2,"EntityKey":{"EntitySetName":"tbl_Details","EntityContainerName":"JQGridDBEntities","EntityKeyValues":[{"Key":"ID","Value":3}],"IsTemporary":false}},{"ID":4,"FirstName" [{{“ ID”:1,“ FirstName”:“ Alan”,“ LastName”:“ Donald”,“ LastSSN”:“ 123”,“部门”:“ Bowler”,“ Age”:“ 44”,“薪水“:” 1000000“,”地址“:”南非“,” MaritalStatus“:”已婚“,” EntityState“:2,” EntityKey“:{” EntitySetName“:” tbl_Details“,” EntityContainerName“:” JQGridDBEntities“, “EntityKeyValues”:[{ “密钥”: “ID”, “值”:1}], “方法isTemporary”:假}},{ “ID”:2 “姓”: “唐纳德”, “名字”:” Duck”,“ LastSSN”:“ 345”,“ Department”:“ Actor”,“ Age”:“ 98”,“ Salary”:“ 2000000”,“ Address”:“ USA”,“ MaritalStatus”:null,” EntityState “:2”,的EntityKey “:{” EntitySetName “:” tbl_Details “ ”EntityContainerName“: ”JQGridDBEntities“, ”EntityKeyValues“:[{ ”密钥“: ”ID“, ”值“:2}],” 方法isTemporary “:假}},{” ID “:3”,姓 “:” Virat “ ”名字“: ”科利“, ”LastSSN“: ”111“, ”部“: ”击球手“, ”年龄“:” 28“,” Salary“:” 1000000“,” Address“:”印度“,” MaritalStatus“:”未知“,” EntityState“:2,” EntityKey“:{” EntitySetName“:” tbl_Details“,” EntityContainerName“: “JQGridDBEntities”, “EntityKeyValues”:[{ “密钥”: “ID”, “值”:3}], “方法isTemporary”:假}},{ “ID”:4 “姓” :"MS","LastName":"Dhoni","LastSSN":"112","Department":"Captain","Age":"31 ","Salary":"9000000 ","Address":"India","MaritalStatus":"Married ","EntityState":2,"EntityKey":{"EntitySetName":"tbl_Details","EntityContainerName":"JQGridDBEntities","EntityKeyValues":[{"Key":"ID","Value":4}],"IsTemporary":false}},{"ID":5,"FirstName":"Sachin","LastName":"Tendulkar","LastSSN":"113","Department":"Superman","Age":"40 ","Salary":"90000000 ","Address":"India","MaritalStatus":"Married ","EntityState":2,"EntityKey":{"EntitySetName":"tbl_Details","EntityContainerName":"JQGridDBEntities","EntityKeyValues":[{"Key":"ID","Value":5}],"IsTemporary":false}},{"ID":6,"FirstName":"Virendra","LastName":"Sehwag","LastSSN":"114","Department":"Batsman","Age":"36 ","Salary":"8000000 ","Address":"India","MaritalStatus":"Married ","EntityState":2,"EntityKey":{"EntitySetName":"tbl_Details","EntityContainerName":"JQGridDBEntities","EntityKeyValues":[{"Key":"ID","Value":6}],"IsTemporary":false}},{"ID":7,"FirstName":"Zaheer :“ MS”,“ LastName”:“ Dhoni”,“ LastSSN”:“ 112”,“部门”:“船长”,“年龄”:“ 31”,“薪水”:“ 9000000”,“地址”:“印度”,“ MaritalStatus”:“已婚”,“ EntityState”:2,“ EntityKey”:{“ EntitySetName”:“ tbl_Details”,“ EntityContainerName”:“ JQGridDBEntities”,“ EntityKeyValues”:[{“ Key”:“ ID “ ”值“:4}], ”方法isTemporary“:假}},{ ”ID“:5 ”姓“: ”萨钦“, ”名字“: ”泰杜尔卡“, ”LastSSN“: ”113“,”部门”:“超人”,“年龄”:“ 40”,“工资”:“ 90000000”,“地址”:“印度”,“婚姻状况”:“已婚”,“ EntityState”:2,“ EntityKey”:{ “EntitySetName”: “tbl_Details”, “EntityContainerName”: “JQGridDBEntities”, “EntityKeyValues”:[{ “密钥”: “ID”, “值”:5}], “方法isTemporary”:假}},{ “ID” :6,“ FirstName”:“ Virendra”,“ LastName”:“ Sehwag”,“ LastSSN”:“ 114”,“ Department”:“ Batsman”,“ Age”:“ 36”,“ Salary”:“ 8000000” ,“地址”:“印度”,“婚姻状况”:“已结婚”,“实体状态”:2,“实体关键字”:{“实体集名称”:“ tbl_Details”,“实体容器名称”:“ JQGridDBEntities”,“实体关键字值”:[[ “密钥”: “ID”, “值”:6}], “方法isTemporary”:假}},{ “ID”:7, “姓”:“Zaheer这样 ","LastName":"Khan","LastSSN":"115","Department":"Bowler","Age":"36 ","Salary":"3000000 ","Address":"India","MaritalStatus":"Married ","EntityState":2,"EntityKey":{"EntitySetName":"tbl_Details","EntityContainerName":"JQGridDBEntities","EntityKeyValues":[{"Key":"ID","Value":7}],"IsTemporary":false}},{"ID":8,"FirstName":"Demo","LastName":"Demo","LastSSN":"Demo","Department":"Demo","Age":"Demo ","Salary":"Demo ","Address":"Demo","MaritalStatus":"Demo ","EntityState":2,"EntityKey":{"EntitySetName":"tbl_Details","EntityContainerName":"JQGridDBEntities","EntityKeyValues":[{"Key":"ID","Value":8}],"IsTemporary":false}},{"ID":9,"FirstName":"Demo","LastName":"Demo","LastSSN":"Demo","Department":"Demo","Age":"Demo ","Salary":"Demo ","Address":"Demo","MaritalStatus":"Demo ","EntityState":2,"EntityKey":{"EntitySetName":"tbl_Details","EntityContainerName":"JQGridDBEntities","EntityKeyValues":[{"Key":"ID","Value":9}],"IsTemporary":false}},{"ID":10,"FirstName":"Demo","LastName":"Demo","LastSSN":"Demo" “,” LastName“:” Khan“,” LastSSN“:” 115“,”部门“:” Bowler“,” Age“:” 36“,” Salary“:” 3000000“,” Address“:”印度“, “ MaritalStatus”:“已结婚”,“ EntityState”:2,“ EntityKey”:{“ EntitySetName”:“ tbl_Details”,“ EntityContainerName”:“ JQGridDBEntities”,“ EntityKeyValues”:[{“ Key”:“ ID”,“值 “:7}],” 方法isTemporary “:假}},{” ID “:8中,” 姓 “:” 演示”, “名字”: “演示”, “LastSSN”: “演示”, “部”: “ Demo”,“ Age”:“ Demo”,“ Salary”:“ Demo”,“ Address”:“ Demo”,“ MaritalStatus”:“ Demo”,“ EntityState”:2,“ EntityKey”:{“ EntitySetName” : “tbl_Details”, “EntityContainerName”: “JQGridDBEntities”, “EntityKeyValues”:[{ “密钥”: “ID”, “值”:8}], “方法isTemporary”:假}},{ “ID”:9, “ FirstName”:“ Demo”,“ LastName”:“ Demo”,“ LastSSN”:“ Demo”,“部门”:“ Demo”,“ Age”:“ Demo”,“薪水”:“ Demo”,“地址“:” Demo“,” MaritalStatus“:” Demo“,” EntityState“:2,” EntityKey“:{” EntitySetName“:” tbl_Details“,” EntityContainerName“:” JQGridDBEntities“,” EntityKeyValues“:[{” Key“ : “ID”, “值”:9}], “方法isTemporary”:假}},{ “ID”:10, “姓”: “演示”, “名字”: “演示”, “LastSSN”:“演示“ ,"Department":"Demo","Age":"Demo ","Salary":"Demo ","Address":"Demo","MaritalStatus":"Demo ","EntityState":2,"EntityKey":{"EntitySetName":"tbl_Details","EntityContainerName":"JQGridDBEntities","EntityKeyValues":[{"Key":"ID","Value":10}],"IsTemporary":false}}] ,“部门”:“演示”,“年龄”:“演示”,“薪水”:“演示”,“地址”:“演示”,“婚姻状况”:“演示”,“ EntityState”:2,“ EntityKey” :{ “EntitySetName”: “tbl_Details”, “EntityContainerName”: “JQGridDBEntities”, “EntityKeyValues”:[{ “密钥”: “ID”, “值”:10}], “方法isTemporary”:假}}]

I think there are misunderstanding how jqGrid works. 我认为jqGrid的工作方式存在误解。 If you don't use loadonce: true option jqGrid send automatically request to url with additional parameters which specify the page size and the requested page. 如果不使用loadonce: true选项,则jqGrid会自动使用其他参数将请求发送到url ,这些参数指定页面大小和请求的页面。 So you don't need to many any $.ajax and you don't need to bind $(".ui-pg-input").click . 因此,您不需要很多$.ajax ,也不需要绑定$(".ui-pg-input").click Default names of 1-based "page number" parameter is page and the name of "row size" parameter is rows . 基于1的“页码”参数的默认名称为page ,“行大小”参数的名称为rows So you need just rename parameters of Records actions. 因此,您只需要重命名Records操作的参数。

Alternatively you can use prmNames option of jqGrid (see the documentation ) to inform jqGrid to use other parameter names as default page and rows . 或者,您可以使用prmNames选项(请参阅文档 )来通知jqGrid使用其他参数名称作为默认pagerows For example you can add the option 例如,您可以添加选项

prmNames: {page: "pageNumber", rows: "rowSize"}

to solve your problem. 解决您的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM