jqGrid不会将postdata发送到我的控制器。我在stackoverflow上尝试了所有提供的解决方案,显然我买错了。所以这是代码:
function refreshGrid() { alert('CompanyNamePart=' + $("#CompanyNamePart").val()); // to check if this is correct value $("#list").trigger('reloadGrid'); return false; } $(function () { var grid = jQuery("#list").jqGrid({ datatype: 'json', caption: 'Transaction Log', postdata: { CompanyNamePart: function () { return $("#CompanyNamePart").val(); }, UsernamePart: function () { return $("#UsernamePart").val(); }, }, url: '@Url.Action("GetTransactionLogData")', mtype: 'GET', colNames: ['Ref.', 'TradeDate', 'Status'], colModel: [ { name: 'Reference', index: 'Reference', width: '60' }, { name: 'TradeDate', index: 'TradeDate', width: '70' }, { name: 'Status', index: 'Status', width: '80' } ], pager: $('#pager'), rowNum: 10, height: '100%' }); });
在控制器端,我有简单的代码:
[HttpGet] public ActionResult GetTransactionLogData(string sidx, string sord, int page, int rows, string CompanyNamePart, string UsernamePart) { return Json(null); }
并且在调试模式下,当我通过单击按钮调用refreshGrid()时,我得到一个警报以确认它正确读取textfield的值,然后刷新网格。我收到控制器的调用,但是CompanyNamePart和UsernamePart变量的值都是null,即使我填充它们。
我尝试了另一种方法的postdata部分的另一个解决方案,首先我创建了返回所需值的函数并将它们放在网格的postdata部分中:
function getCompanyNamePartVal() { return $("#CompanyNamePart").val(); } function getUsernamePartVal() { return $("#UsernamePart").val(); } ... in jqgrid definition postdata: { CompanyNamePart: getCompanyNamePartVal(), UsernamePart: getUsernamePartVal(), },
但没有成功。
当我检查Firebug时,我发现jqGrid没有发送postdata值:
Get Parameters caught by Firebug _ 1340696638960 _search false nd 1340696638955 page 1 rows 10 sidx sord asc
我做错了什么?
答案 0 :(得分:3)
该参数名为postData
,而不是postdata
。别忘了javascript是一种区分大小写的语言。所以试试这样:
postData: {
CompanyNamePart: function () { return $("#CompanyNamePart").val(); },
UsernamePart: function () { return $("#UsernamePart").val(); }
}
另请注意,我在代码中使用的UsernamePart
函数后删除了一个尾随逗号,该函数生成了无效的javascript。一些更敏感的浏览器可能不接受它。
答案 1 :(得分: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)
代码确定。