编辑PRMS
edit: {
addCaption: "Add CDM",
bSubmit: "Submit",
bCancel: "Cancel",
bClose: "Close",
saveData: "Data has been changed! Save changes?",
bYes: "Yes",
bNo: "No",
bExit: "Cancel",
//serializeEditData: serailize,
//editData: {new_CDM_ID: function() { return $('#cdmID').val();} },
closeOnEscape: true,
recreateForm: true,
width: '450',
afterSubmit: function (response, postdata) {
var result = jQuery.parseJSON(response.responseText);
return [result.success, result.message, result.id];
//return [success, message, new_id]
}
问题
我能够在 afterSubmit 事件中捕获错误消息,并且还能够在jqgrid的编辑表单中显示它。但成功信息并没有发生同样的情况。我能够捕获它但无法在jqgrid的编辑形式上显示。我应该使用不同的事件来显示成功消息。
我的要求是:
答案 0 :(得分:1)
方法“afterSubmit”的documentation说:“(如果成功,则忽略消息)。”
你应该使用黑客攻击。将此代码放在afterSubmit方法中。 :
if(response.status == 200){
$(".topinfo").html("info message");
var tinfoel = $(".tinfo").show();
tinfoel.delay(3000).fadeOut();
return [true,''];
} else {
return [false,'error message'];
}
这适用于jqGrid 4.4.1的版本。
答案 1 :(得分:1)
从@Gab获取灵感,这是我的最终代码,效果很好。 closeAfterEdit如果设置为true,则上面的解决方案没有显示msg,所以我创建了新的对话框。
function(response) { if(response.status == 200)
{
jQuery.jgrid.info_dialog("Info","<div class=\"ui-state-highlight\" style=\"padding:5px;\">Record updated!</div>",
jQuery.jgrid.edit.bClose,{buttonalign:"right"});
jQuery("#info_dialog").delay(3000).fadeOut();
return [true,""];
}
}
答案 2 :(得分:1)
您可以使用以下代码:
afterSubmit: function (response, postdata) {
var myInfo = '<div class="ui-state-highlight ui-corner-all">'+
'<span class="ui-icon ui-icon-info" ' +
'style="float: left; margin-right: .3em;"></span>' +
"Done Successfully!!!"
'</div>',
$infoTr = $("#TblGrid_" + $.jgrid.jqID(this.id) + ">tbody>tr.tinfo"),
$infoTd = $infoTr.children("td.topinfo");
$infoTd.html(myInfo);
$infoTr.show();
setTimeout(function () {
$infoTd.children("div")
.fadeOut("slow", function () {
// Animation complete.
$infoTr.hide();
});
}, 3000);
// failcount = 0;
// totalcount = 0;
return [true, "", ""]; // response should be interpreted as successful
},