【问题标题】:JQGrid not reloading data after performing action on click of custom button在单击自定义按钮执行操作后,JQGrid 不重新加载数据
【发布时间】:2015-02-20 20:43:03
【问题描述】:

这是我的 JQGrid 的代码

$("#vendor_match_grid").jqGrid({
    url: $("#hdnWebSericeAPIURL").val() + "/api/PRAClubbedVendor/ViewClubbedVendorMasterData/",
    datatype: 'json',
    mtype: 'GET',
    height: 500,
    colModel: [
        { name: 'Vendor Number', index: 'Vendor_Number', editable: false },
        { name: 'Vendor Name', index: 'Vendor_Name', editable: true },
        { name: 'Clubbed Vendor Name', index: 'Clubbed_Vendor_Name', editable: true },
        { name: 'Phone Number', index: 'Phone_Number', editable: true },
        { name: 'Fax Number', index: 'Fax_Number', editable: true },
        { name: 'Email', index: 'Email', editable: true },
        { name: 'Street', index: 'Street', editable: true },
        { name: 'City', index: 'City', editable: true },
        { name: 'Country', index: 'Country', editable: true },
        { name: 'Region', index: 'Region', editable: true },
        { name: 'Is Active', index: 'IsActive', editable: true, edittype: 'select', editoptions: { value: { 'True': 'Active', 'False': 'InActive' } } },
        { name: 'TableFlag', index: 'TableFlag', editable: false, hidden: true }],
    pager: '#vendor_match_pagernav',
    rowNum: 20,
    rowList: [20, 50, 100],
    viewrecords: true,
    sortable: true,
    sortname: "TableFlag",
    sortorder: "desc",
    search: true,
    searchOperators: true,
    stringResult: true,
    closeAfterSearch: true,
    caption: 'Clubbed Vendor Match',
    emptyrecords: 'No records to display',
    autowidth: true,
    loadComplete: function () {        },
    onSelectRow: function (rowID) {        }
}).navGrid('#vendor_match_pagernav', { edit: false, add: false, del: false, search: true, refresh: true }, {}, {}, {}, { closeAfterSearch: true });

现在,我正在使用此代码向其添加自定义按钮

$("#vendor_match_grid").jqGrid('navButtonAdd', '#vendor_match_pagernav', {
    caption: "Add vendor",
    id: "btnAddVendor",
        onClickButton: function () {}
        });

在 onClickFunction 中,我打开一个弹出窗口,添加一些数据并进行 ajax 调用,在 AJAX 成功时,我需要重新加载网格。但是数据没有重新加载。 jqGrid 变为空。我没有使用 loadonce,我的数据不是本地的。我可能做错了什么?

****更新**** 这是我的 AJAX 调用

 $.ajax({
        url: $('#hdnWebSericeAPIURL').val() + '/api/PRAClubbedVendor/FinalizeClubbedVendorMasterData/',
        type: "POST",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(clubbedVendorDataObject),
        dataType: "json",
        success: function (response) {
            $("#vendor_match_grid").jqGrid("setGridParam", { datatype: "json" })
    .trigger("reloadGrid", [{ current: true, page: 1 }]);
            //$("#vendor_match_grid").trigger('reloadGrid');
        },
        error: function (response) {
        }
    });

【问题讨论】:

  • 能否请您在此处添加 reload 语句和 AJAX 调用
  • @Runcorn 我已经更新了帖子中的代码。我尝试了多种方法来触发重载,上面代码中提到了其中两种。
  • 那么,你检查过 jqGrid relaod 的响应了吗?打开控制台并查看重新加载请求以确保从响应中返回正确的 JSON 格式。
  • @Runcorn 我已经检查过了。数据格式正确,它也将出现在 loadComplete 事件中,但我仍然看到 jqGrid 为空:(

标签: jquery ajax jqgrid


【解决方案1】:

您可以在单击添加到 Grid 中的自定义按钮时触发 reload 方法调用。

【讨论】:

  • 我已经在这样做了。 webservice 正在返回数据,但它没有绑定到 jqGrid
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
  • 2016-03-14
  • 1970-01-01
  • 2022-12-02
  • 2023-02-03
  • 2011-10-08
相关资源
最近更新 更多