大家好,我正在创建一个带有可编辑 jqGrid(v4.4)的 Web 应用程序,默认情况下,当您处于编辑模式(内联编辑)并按下 Enter 键时,它会调用 jqGrid 的 saveRow 方法,该方法实际上试图保存行。
问题是我一直在使用自定义方式来保存我的行,并且我只在我先做一些其他事情之后才使用 saveRow。
我为 Enter 创建了一个键绑定,如下所示:
$(document).keyup(function (e) {
if (e.keyCode == 13) {
if (lastsel) {
jQuery('#list').jqGrid('saveRow', lastsel, false, 'clientArray');
var rowData = jQuery('#list').jqGrid('getRowData', lastsel);
// alert(rowData);
// alert(JSON.stringify(rowData));
jQuery.post('Home/Save?inputEmployee=', JSON.stringify(rowData));
lastsel = false;
}
}
});
问题是它既完成了 jqGrid 为绑定定义的操作,也完成了我在上面所做的操作。
在我使用之前,有什么办法可以摆脱之前对 Enter 的绑定?
编辑:我引入了我的 HomeController Save 方法:
public void Save(string inputEmployee)
{
Employee employeeData = JsonConvert.DeserializeObject(inputEmployee.ToString(), typeof(Employee)) as Employee;
var context = new EmployeeDataContext();
Employee employee = context.Employees.Single(e => e.ID == employeeData.ID);
employee = employeeData;
context.SubmitChanges();
}
所以我所做的是我创建了一个 LINQ to SQL 模型,并使用它的上下文从/向数据库获取/设置数据。所以我想我会传递一个 Employee 字符串化对象作为参数,然后用我的控制器反序列化它。