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 postData setGridParam 调用多次时查询条件累加的问题--详情页查询导致的无法在新的页面中查询