jqGrid不發送postdata到我的控制器。我嘗試了所有在stackoverflow上提供的解決方案,顯然買了我在某處的錯誤。因此,這裏是代碼:jqGrid postdata發送空值(mvc3 asp/net)
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()通過點擊一個按鈕,我得到一個警報,以確認我它正確讀取文本字段的值,然後刷新網格。我收到了控制器的調用,但是CompanyNamePart和UsernamePart變量的值都是空的,即使我填充了它們。
我試過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
我在做什麼錯?
非常感謝!你是救星! :) –