easyui datagrid批量编辑后向后台post数据

参考了:ajax传递给后台数组参数方式


1.自定义一个类用于对应datagrid编辑的数据

 public class Category
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }


2.前台js提交

var _list = {};
var rows = $('#list_data').datagrid('getRows');
for (var i = 0; i < rows.length; i++) {
    var row = rows[i];            
    _list["list[" + i + "].Id"] = rows[i].Id; //这里list要和后台的参数名List<Category> list一样
    _list["list[" + i + "].Name"] = rows[i].Name;
}

$.ajax({
    url: '/Admin/Category/SaveList',         
    data: _list,
    dataType: "json",
    type: "POST",          
    success: function (data) {
        alert(data.rows + "," + data.result);
    }
});  


3.后台代码

public ActionResult SaveList(List<Category> list)
{
    string result = "";
    foreach (var m in list)
        result += m.Name + ",";

    //供前台测试返回结果
    return Json(new { rows = list.Count.ToString(), result = result });
}  

4.在FireFox的Firebug显示post数据:

list[0].Id    1
list[0].Name    test111
list[1].Id    2
list[1].Name    test2
list[2].Id    3
list[2].Name    test3


你可能感兴趣的:(easyui datagrid批量编辑后向后台post数据)