【问题标题】:jqgrid paging issue - Not loaded data with pagejqgrid 分页问题 - 未使用页面加载数据
【发布时间】:2014-01-03 11:50:21
【问题描述】:

我正在使用带有自定义编辑、删除按钮的 Jqgrid。另外,我正在使用外部搜索在网格中搜索。两天以来,我对一个问题感到沮丧。

请检查我下面绑定 jqgrid 的代码

jQuery(document).ready(function () {
    var myGrid = $('#list');

    myGrid.jqGrid({
        url: '/Site/GetData/',
        datatype: "json",
        contentType: "application/json; charset-utf-8",
        mtype: 'POST',
        loadonce: true,
        colNames: ['Site ID', 'Site Name', 'Email Address', 'Website', 'Contact Person', 'Phone number', 'Mobile number', "Edit", "Delete"],
        colModel:
        [
            { name: 'SiteID', hidden: true },
            { name: 'SiteName' },
            { name: 'EmailID' },
            { name: 'Website' },
            { name: 'ContactPerson' },
            { name: 'PhoneNo' },
            { name: 'MobileNo' },
            { name: 'Edit', width: 50, sortable: false, formatter: ColumnFormatter },
            { name: 'Delete', width: 60, sortable: false, formatter: ColumnFormatter },
        ],
        autowidth: true,
        rowNum: 5,
        rowList: [5, 10, 20, 50],
        pager: jQuery('#pager'),
        sortorder: "desc",
        viewrecords: true,
        gridview: true,
        ignoreCase: true,

    }).navGrid('#pager',
        {
            rowNum: 5, edit: false, add: false, del: false, search: false, refresh: true
        }
       );
});

使用上面的代码我正在绑定 Jqgrid。 现在,我需要从网格中删除一行,删除后我需要刷新整个网格。但它不会根据页面保存数据。请在下面查看我的删除功能:

 function deleteRow(imageElement, UserId) {
    var data = new Object();
    data.id = UserId;
    var _data = JSON.stringify(data);
    $("#list").setGridParam({ datatype: 'json' });
    $.ajax({
        url: '@Url.Action("Delete", "Site")',
        type: "POST",
        contentType: "application/json; charset=utf-8",
        data: _data,
        success: function (result) {
            var currentPage = $('#gridData').getGridParam('page');
            $('#list').trigger('reloadGrid');
            $("#list").setGridParam({ page: currentPage })
        },
        error: function (result) {
            alert("This data can not be deleted");
        }
    });
}

好的,使用上面的代码,我正在删除行,如果响应成功,则需要重新加载整个网格。

现在,如果我在第二页并删除任何行,它将重新加载网格,它显示页码设置为 2。但记录从网格的第一页显示我。

请帮帮我

【问题讨论】:

    标签: asp.net-mvc-4 jqgrid mvcjqgrid


    【解决方案1】:

    我不确定我是否正确理解了您需要实施的行为。如果您想从服务器重新加载整个网格,那么您应该在重新加载之前重置datatype 的值。原因:您使用loadonce: true,它从服务器加载数据一次,将其保存在内部jqGrid参数data_index中,然后datatype将更改为"local" .所以如果你想从服务器重新加载数据,你应该执行

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

    之前 reloadGrid.

    此外,如果您需要使用 特定 页面重新加载网格,您可以使用 jqGrid 的page 参数(有关详细信息,请参阅the answer)。在大多数情况下,current:true 选项的使用是人们所需要的。所以代码应该如下所示

    ...
    success: function (result) {
        $("#list").setGridParam({ datatype: 'json' })
            .trigger('reloadGrid', [{ current: true }]);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 2013-04-04
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多