【问题标题】:jqGrid postdata sends null values (mvc3 asp/net)jqGrid postdata 发送空值(mvc3 asp/net)
【发布时间】:2012-06-27 12:12:47
【问题描述】:

jqGrid 不会将 postdata 发送到我的控制器。我在stackoverflow上尝试了所有提供的解决方案,显然我在某处犯了错误。所以这里是代码:

功能刷新网格(){ alert('CompanyNamePart=' + $("#CompanyNamePart").val()); // 检查这是否是正确的值 $("#list").trigger('reloadGrid'); 返回假; } $(函数(){ var grid = jQuery("#list").jqGrid({ 数据类型:'json', 标题:“交易记录”, 发布数据: { CompanyNamePart: function () { return $("#CompanyNamePart").val(); }, UsernamePart: function () { return $("#UsernamePart").val(); }, }, url: '@Url.Action("GetTransactionLogData")', mtype: 'GET', colNames: ['Ref.', 'TradeDate', 'Status'], col型号:[ {名称:'参考',索引:'参考',宽度:'60'}, {名称:'TradeDate',索引:'TradeDate',宽度:'70'}, {名称:'状态',索引:'状态',宽度:'80'} ], 寻呼机:$('#pager'), 行数:10, 高度:'100%' }); });

在控制器方面,我有简单的代码:

[HttpGet] 公共 ActionResult GetTransactionLogData(string sidx, string sord, int page, int rows, string CompanyNamePart, string UsernamePart) { 返回 Json(null); }

在调试模式下,当我通过单击按钮调用 refreshGrid() 时,我会收到一个警报,以确认它正确读取了文本字段的值,然后刷新网格。我收到了控制器的调用,但 CompanyNamePart 和 UsernamePart 变量的值都是空的,即使我填写了它们。

我用另一种方法尝试了 postdata 部分的另一种解决方案,首先我创建了返回所需值并将它们放入网格的 postdata 部分的函数:

函数 getCompanyNamePartVal() { 返回 $("#CompanyNamePart").val(); } 函数 getUsernamePartVal() { 返回 $("#UsernamePart").val(); } ...在 jqgrid 定义中 发布数据: { 公司名称部分:getCompanyNamePartVal(), 用户名部分:getUsernamePartVal(), },

但没有成功。

当我检查 Firebug 时,我可以看到 jqGrid 没有发送 postdata 值:

获取 Firebug 捕获的参数 _ 1340696638960 _搜索错误 nd 1340696638955 第 1 页 第 10 行 西德克斯 升序

我做错了什么?

【问题讨论】:

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


    【解决方案1】:
    $("#grid").jqGrid({
            url: "/DocumentoBalanza/GetBalanzaEmpresaMes",
            //postData: JSON.stringify(formDataParam),
            postData : {
                id: function () { return formDataParam.id; },
                strDate: function () { return formDataParam.strDate; },
            },
            datatype: 'json',
            mtype: 'GET',
    

    public JsonResult GetBalanzaEmpresaMes(string sidx, string sord, int page, int rows, int id, string strDate)
    

    代码正常。

    【讨论】:

      【解决方案2】:

      该参数称为postData,而不是postdata。不要忘记 javascript 是一种区分大小写的语言。所以试试这样:

      postData: {
          CompanyNamePart: function () { return $("#CompanyNamePart").val(); },
          UsernamePart: function () { return $("#UsernamePart").val(); }
      }
      

      还请注意,我在您的代码中的 UsernamePart 函数之后删除了一个尾随逗号,该函数会产生无效的 javascript。一些更敏感的浏览器可能不接受它。

      【讨论】:

      • 非常感谢!你是救命稻草! :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 2014-04-07
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多