点击编辑按钮

时间:2015-09-01 10:56:23

标签: jquery asp.net-mvc-3 jqgrid

我有一个包含五列的jqgrid以及编辑列,编辑列的每一行都有一个编辑按钮。

假设我在jqgrid中有一些记录,而且我在jqgrid的第4页。单击第4页上某行的编辑按钮时,将调用一个执行某些功能并重新加载页面的操作方法。

jqgrid也重新加载并从第4页开始到第1页,即使重新加载后如何保持同一页面。

我无法在互联网上找到这个确切情况的答案。

请帮助!!

提前致谢。

$("#productvariationListGrid").jqgrid(
   {

       url: '../Product/GetAllProductType',
       sortname: 'Name',
       sortorder: 'asc',
       colNames: ['Id', 'Product Name', 'Product Type Name', 'Description', 'Edit'],
       colModel: [
           { name: 'Id', key: true, hidden: true },
           {
               name: 'ProductName',  index: 'ProductName', searchoptions: { sopt: ['cn'] }, resizable: false
           },
           {
               name: 'productTypeName',  index: 'productTypeName', searchoptions: { sopt: ['cn'] }, resizable: false
           },
            {
                name: 'Description',  index: 'Description', searchoptions: { sopt: ['cn'] }, resizable: false
            },
            {
                name: 'Edit',  index: 'Edit',  sortable: false, search: false,
                formatter: actionFormatterEdit

            }
       ],
       rowNum: 5,
       autowidth: true,
       width: '100%'
   });


    function actionFormatterEdit(cellvalue, options, rowObject) {
        return '<a href="../Product/EditProductType?ProductTypeId=' + options.rowId + '" class="editIcon"></a>';

1 个答案:

答案 0 :(得分:1)

您当前的编辑实现只会打开新的HTML页面。在这种方式中,您将丢失有关网格状态的所有信息。您应该考虑使用Ajax与服务器通信。这是在jqGrid中实现标准编辑的方式。

或者,您可以将当前页面保存在Web浏览器的localStorage内或Cookie中。要获取网格的当前页面,您可以使用$("#productvariationListGrid").jqgrid("getGridParam", "page")。在创建网格之前执行的代码中,您应该尝试从localStorage(或从Cookie)获取页码。可以使用jqGrid的page: oldPage选项来创建网格并加载oldPage而不是第一页。

The answerthis onethe oldest one显示了如何保留页码以及有关网格状态的许多其他信息。例如,您可以尝试the demo来更改页面,选择行,更改列的宽度或列的顺序等等。之后,您可以按F5 重新加载页面。您将看到重新加载的页面在重新加载之前看起来完全一样,因为它保存并恢复localStorage内的状态。您可以基于相同的想法实现简化的实现。