我一直在努力将所有从jqGrid到从jqGrid到行动法的行的代码提交到行动方法,使用来自, < a href=' http://www.trirand.com/jqgridwiki/duku.php?id=wiki:methods" rel=“nofolnoreferr” >jqGrid Wiki 。在提交时,我希望所有行数据都回到控制器,这样我才能坚持它。我试过使用隐藏的字段存储所有行数据,但控制器似乎永远得不到所有东西,只有电网中的最后一个编辑的单元格。所以我切换成了一个jax方法,但是不管我怎么尝试什么我怎么才能把I 带到了Jsrox_col_col_col_cone.
$("#submitButton").click(function () {
$("#awesomeGrid").jqGrid( resetSelection );
var gridRows = $("#awesomeGrid").jqGrid( getRowData );
var rowData = new Array();
for (var i = 0; i < gridRows.length; i++) {
var row = gridRows[i];
rowData.push($.param(row));
}
var dataToSend = JSON.stringify(rowData);
$.ajax({
url: @Url.Action("UpdateAwesomeGridData") ,
type: POST ,
data: { gridData: dataToSend },
dataType: json ,
success: function (result) {
alert( success );
}
});
return true;
});
和我的控制器方法签名:
[HttpPost]
public ActionResult UpdateAwesomeGridData(string gridData)
我尝试过将 gridData
参数从 string
改为 string[]
,到 object[]
到所有种类的东西,但似乎没有任何效果。如果我将它保留为 string
,我就会得到数据,但格式很古怪,像这样(栏名替换):
gridData=["Id=1&Field1=1945&Field2=0&Field3=0&Field4=1&Field5=Some+string+value&Field6=&Field7=&Field8=&Field9s=","Id=2&Field1=1945&Field2=0&Field3=0&Field4=2&Field5=Another+string+value&Field6=&Field7=&Field8=&Field9s=","Id=3&Field1=1945&Field2=0&Field3=0&Field4=3&Field5=Yet+another+string&Field6=&Field7=&Field8=&Field9s=","Id=4&Field1=1945&Field2=0&Field3=0&Field4=4&Field5=Final+string&Field6=&Field7=&Field8=&Field9s="]
我从小提琴手那里得到了这个, 并且记录下来, JSON 标签在我小提琴的时候没有显示任何请求 。 我可以用什么方法使这个阵列化, 并一次性发送它? 我的行动方法上应该使用哪种参数?
<强 > EDIT - 解决方案 强 >
对于像我一样蠢的其他人来说, 这就是我如何让它工作的:
首先,根据Oleg 的建议,我在 jqGrid 定义中添加了 < code> loadonce: true 。 然后,将我的提交按钮功能修改如下:
$("#submitButton").click(function () {
var griddata = $("#awesomeGrid").jqGrid( getGridParam , data );
var dataToSend = JSON.stringify(griddata);
$.ajax({
url: @Url.Action("UpdateAwesomeGridData") ,
type: POST ,
contentType: application/json; charset=utf-8 ,
data: dataToSend,
dataType: json ,
success: function (result) {
alert( success: + result.result);
}
});
return true;
});
然后更改了我的控制器方法签名 :
public ActionResult UpdateAwesomeGridData(IEnumerable<GridBoundViewModel> gridData)
希望这能帮助未来的人