我有一个包含五列的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>';
答案 0 :(得分:1)
您当前的编辑实现只会打开新的HTML页面。在这种方式中,您将丢失有关网格状态的所有信息。您应该考虑使用Ajax与服务器通信。这是在jqGrid中实现标准编辑的方式。
或者,您可以将当前页面保存在Web浏览器的localStorage
内或Cookie中。要获取网格的当前页面,您可以使用$("#productvariationListGrid").jqgrid("getGridParam", "page")
。在创建网格之前执行的代码中,您应该尝试从localStorage
(或从Cookie)获取页码。可以使用jqGrid的page: oldPage
选项来创建网格并加载oldPage
而不是第一页。
The answer,this one和the oldest one显示了如何保留页码以及有关网格状态的许多其他信息。例如,您可以尝试the demo来更改页面,选择行,更改列的宽度或列的顺序等等。之后,您可以按F5 重新加载页面。您将看到重新加载的页面在重新加载之前看起来完全一样,因为它保存并恢复localStorage
内的状态。您可以基于相同的想法实现简化的实现。