我使用jqgrid,在内联编辑中,用户可以编辑一个特定的单元格值,按下“Enter”按钮进行更新,但我需要在用户离开单元格时直接更新..
Jquery代码
<script type="text/javascript">
$(function () {
var lastsel;
var colind = 2;
jQuery("#list").jqGrid({
url: '/Home/GetStudents/',
datatype: 'json',
mtype: 'POST',
colNames: ['StudentID', 'FirstName', 'LastName', 'Email'],
colModel: [
{ name: 'StudentID', sortable: false, key: true },
{ name: 'FirstName', key: true },
{ name: 'LastName', sortable: false, key: true },
{ name: 'Email', width: 200, sortable: false, key: true}],
cmTemplate: { align: 'center', editable: true },
pager: '#pager',
width: 750,
rowNum: 15,
rowList: [5, 10, 20, 50],
sortname: 'StudentID',
sortorder: "asc",
viewrecords: true,
caption: ' My First JQgrid',
onSelectRow: function (StudentID)
// onCellSelect:function(StudentID)
{
if (StudentID != lastsel) {
jQuery('#list').jqGrid('restoreRow', lastsel);
jQuery('#list').jqGrid('editRow', StudentID, true);
// jQuery('#list').jqGrid('editCell', StudentID, colind, true);
lastsel = StudentID;
}
},
editurl: '/Home/About/',
// data: { get_param: selectedDescription },
caption: "jQgrid Sample"
});
jQuery("#list").jqGrid('navGrid', "#pager", { edit: false, add: false, del: false });
});
</script>
答案 0 :(得分:1)
我不建议您实现此类行为,因为它可能会产生验证错误。如果用户刚开始输入某些内容来更改某些文本,则输入的数据可能仍然是错误的。在短时间间隔后自动保存数据可以跟随尝试保存绝对错误的数据。
例如,如果用户按错了键(如字段中只允许数字的字母),则在保存数据期间会产生错误。
此外,如果用户开始键入一些错误的信息(例如,他可能会错误地删除某个单元格中的某些长文本),则保存信息不允许回滚。除 Enter 之外,标准内联编辑实现还支持 Esc 键。我发现 Esc 键的支持非常重要。
所以我可以重复一遍,我不建议你实现你在问题中描述的行为。
您应该考虑的另一个选项是使用单元格编辑而不是内联编辑。我个人更喜欢内联编辑,但这是品味的问题。