【发布时间】:2013-02-07 08:46:50
【问题描述】:
大家好,我正在创建一个带有可编辑 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 字符串化对象作为参数,然后用我的控制器反序列化它。
【问题讨论】:
标签: c# javascript jquery asp.net-mvc-3 jqgrid