You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击编辑按钮后如何重新加载jqGrid显示指定客户关联数据?

问题分析与解决

你的问题出在点击编辑按钮后,给第二个jqGrid设置URL时没有传递必要参数,服务器无法识别要返回哪个客户的产品数据,导致Grid无法展示对应内容。

核心问题点

  • 初始化第二个Grid时,URL包含?GetProductGrid=1参数用来标识获取产品网格数据,但点击编辑后重置URL时只保留了基础路径,丢失了该关键参数。
  • 没有将当前编辑的customerID传递给服务器,服务器无法筛选出对应客户的产品数据。

修复步骤

  1. 补充URL必要参数:在设置Grid参数时,把GetProductGrid=1和当前的customerID都添加到URL中,确保服务器能获取到正确的查询条件。
  2. 优化Grid重载逻辑:重载Grid时指定从第一页加载,同时明确设置datatype: 'json'避免缓存干扰。

修改后的editCustomerRecord函数代码:

function editCustomerRecord(id) {
    event.preventDefault();
    customerID = id;
    $.ajax({
        type: 'GET',
        url: 'JHandler/Dashboard.ashx?EditCustomer=1' + '&customerID=' + customerID,
        success: function (data) {
            var allData = data;
            addNewRecord();
            document.getElementById('btnSave').value = "Update";
            customerID = allData[0];
            document.getElementById('cName').value = allData[1];
            document.getElementById('cAddress').value = allData[2];
            document.getElementById('cContact').value = allData[3];
            
            // 修正URL,添加必要参数
            $('#tblProductGridID').jqGrid('setGridParam', {
                url: 'JHandler/Dashboard.ashx?GetProductGrid=1&customerID=' + customerID,
                datatype: 'json' // 明确数据类型,避免缓存导致的旧数据问题
            });
            // 重载Grid,从第一页开始加载
            $('#tblProductGridID').trigger("reloadGrid", [{ page: 1 }]);
        },
        error: function () {
            toastr.error("Error occured", "Edit Error", { timeout: 3000 });
        }
    });
}

额外检查点

  • 确认服务器端Dashboard.ashx的GetProductGrid分支逻辑,是否正确接收并使用customerID参数筛选对应客户的产品数据。
  • 可以通过浏览器开发者工具的网络面板,查看点击编辑后第二个Grid的请求URL是否包含正确的customerID,以及服务器返回的JSON数据是否符合jqGrid的格式要求。

内容的提问来源于stack exchange,提问作者Saad Bajwa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 03:35:30