jqGrid postdata 发送空值(mvc3 asp/net)

Posted

技术标签:

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

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

功能刷新网格() 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 行 西德克斯 升序

我做错了什么?

【问题讨论】:

【参考方案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。一些更敏感的浏览器可能不接受它。

【讨论】:

非常感谢!你是救命稻草! :)

以上是关于jqGrid postdata 发送空值(mvc3 asp/net)的主要内容,如果未能解决你的问题,请参考以下文章

jqgrid postData post方式累加参数,缓存了原来的数据

jqgrid删除之后怎么回到第一页

jqgrid postData setGridParam 调用多次时查询条件累加的问题--详情页查询导致的无法在新的页面中查询

NFine框架JqGrid导出选中行为Excel实现方法

JqGrid相关操作备忘 方法列表

jqgrid 翻页记录选中行