在编辑时,无外乎两种结果:成功和失败。在form edit的弹出编辑窗体中隐藏了两个单元(td),一个的ID是FormError,另一个没有id,有class叫做topinfo。就是这两个家伙可以分别来显示错误信息和操作成功的信息。
以下在firebug中截图:
FormError在topinfo的上面,因此如果第一次操作成功(true),如果窗体不消失,在窗体上再次编辑后提交失败(false),则错误信息会出现在第一次成功信息的上面!
所以要在提交失败的语句段中清除成功信息。
以下是javascript代码:
1 function Z_AfterSubmit_Edit(response, postdata) { 2 var DialogVars = $.parseJSON(response.responseText);//响应信息 3 $infoTr = $("#TblGrid_" + $.jgrid.jqID(this.id) + ">tbody>tr.tinfo"), 4 $infoTd = $infoTr.children("td.topinfo");//信息栏 5 if (DialogVars.success) { 6 var myInfo = '<div class="ui-state-highlight ui-corner-all">' + 7 '<span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>' + 8 DialogVars.message + 9 '</div>' 10 $infoTd.html(myInfo); 11 $infoTr.show(); 12 return [true, myInfo, ""]; 13 } else { 14 var myInfo = //'<div class="ui-state-highlight ui-corner-all">' + 15 '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>' + 16 DialogVars.message + 17 '</div>' 18 //错误信息是在id为FormError的单元格显示 19 $infoTr.hide();//隐藏信息栏以免同时显示info和FormError 20 return [false, myInfo, ""]; 21 } 22 }
在jqgrid中调用:
afterSubmit: Z_AfterSubmit_Edit
窗体在编辑后是保持显示还是消失,可以通过设置closeAfterEdit的值为true或false来实现。默认的是成功消失,失败时窗体不消失。如果想不管成功还是失败都显示窗体,可以把closeAfterEdit设为false。
closeAfterEdit: false
--END--