0

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 行
西德克斯    
升序

我究竟做错了什么?

4

2 回答 2

4

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

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

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

于 2012-06-26T07:55:55.810 回答
0
$("#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)

代码确定。

于 2014-08-25T04:37:57.937 回答