我在jqgrid的文本框中使用自动完成功能。但我不应该允许用户两次选择相同的项目。由于分页,他不会一直看到所有数据。有没有办法在向服务器发送新行检查服务器中的重复数据并将状态发送回jqgrid时,可能会弹出一个警告,表示“行已经存在于表中”。什么是bst方法来进行此验证并通知用户?感谢。
$("#assessmentproduct").jqGrid({
url: 'orthofixServices.asmx/GetProductList',
colNames: ['id', 'Product Description', 'Commission Rate'],
colModel: [
{ name: 'id', hidden: true },
{ name: 'description', index: 'desc', width: 320, editable: true },
{ name: 'commissionrate', index: 'com', width: 120, editable: true, unformat: percentUnFormatter, formatter: percentFormatter, editrules: { number: true} }
],
serializeRowData: function(data) {
var params = new Object();
params.id = 0;
params.prdid = $("#prdid").val();
params.description = data.description;
params.commissionrate = data.commissionrate;
var result = JSON.stringify({ 'passformvalue': params, 'oper': data.oper, 'id': data.id });
return result;
},
mtype: "POST",
rowNum: 4,
height: 93,
width: 400,
pager: '#assessmentpager',
editurl: "orthofixServices.asmx/ModifyProductList"
});
$("#assessmentproduct").jqGrid('navGrid', '#assessmentpager', { add: false, edit: false, del: true, refresh: false, search: false }, {}, {}, { serializeDelData: function(postData) {
return JSON.stringify({ 'passformvalue': null, 'oper': postData.oper, 'id': postData.id });
}
});
$("#assessmentproduct").jqGrid('inlineNav', '#assessmentpager', { addParams: { position: "last", addRowParams: {
"errorfunc": duplicateRow, "aftersavefunc": function() { var grid = $("#assessmentproduct"); reloadgrid(grid); }
}
}, editParams: { "aftersavefunc": function() { var grid = $("#assessmentproduct"); reloadgrid(grid); } }
});
答案 0 :(得分:0)
您应该只保留简单规则:如果服务器上发生错误(例如由于验证错误),则服务器响应应包含一些error HTTP status code。在这种情况下,将向用户显示错误消息。
确切的错误处理和显示的错误消息格式取决于您使用的编辑模式。如果是内联编辑,我建议您使用editRow方法的errorfunc
和restoreAfterError
参数。在表单编辑的情况下,errorTextFormat回调可能非常有用。