2010-11-02 79 views
4

当我在我的jqgrid中使用editurl属性时,控制器操作在添加新行后点击提交按钮后被调用。但是,我如何获得所有网格行?我应该从我的控制器操作方法中读取哪些参数以获取网格数据?jqgrid editurl:控制器动作参数

电网代码:

$("#list1").jqGrid({ 
      url: '/CMS/GetCustomLanguageData', 
--- 
---     
editurl: '/CMS/SaveCustomLanguageData' 
--- 

添加新的一行代码:

grid.jqGrid('editGridRow',"new",{height:280,reloadAfterSubmit:false,addCaption: "Add Record", 
    editCaption: "Edit Record", 
    bSubmit: "Submit", 
    bCancel: "Cancel", 
    bClose: "Close", 
    saveData: "Data has been changed! Save changes?", 
    bYes : "Yes", 
    bNo : "No" 
}); 

控制器代码:

public ActionResult SaveCustomLanguageData() 
{ 
} 
+0

,您可以包括列定义('colModel')JSON响应您的问题,那么我的答案可能会更清楚。哪种类型有你使用的id(int或string)? – Oleg 2010-11-02 12:04:36

回答

4

的jqGrid发送到控制器命名参数的名称,你的定义colModel的'name'属性。另外将发送oper=addid=_empty。所以,你的控制器动作可以像在客户端以下

public JsonResult SaveCustomLanguageData (string id, string oper, MyObject item) 
{ 
    // test id for "_empty" or oper for "add". 
    // If so add the item and return the value of the new id 
    // for example return Json ("123"); 
} 

你应该在解码例如用下面的代码

jQuery.extend(jQuery.jgrid.edit, { 
    afterSubmit: function (response, postdata) { 
     return [true, "", jQuery.parseJSON(response.responseText)]; 
    } 
}); 
+0

谢谢@Oleg!你解决了我的问题.. – 2010-11-03 03:53:09