在Jqgrid EDIT表单上显示成功消息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Jqgrid EDIT表单上显示成功消息相关的知识,希望对你有一定的参考价值。

编辑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的编辑形式上显示。我应该使用不同的事件来显示成功消息。

我的要求是:

  1. 显示红色的错误消息(工作)
  2. 以绿色显示成功消息(不工作)
答案

方法“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的版本。

另一答案

从@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,""];
    } 
}
另一答案

您可以使用以下代码:

 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
        }, 

以上是关于在Jqgrid EDIT表单上显示成功消息的主要内容,如果未能解决你的问题,请参考以下文章

在联系表单 7 上隐藏验证错误或成功消息框

在 jqgrid 中的多行 EDIT 案例中展开文本

如何在 page.redirect 从 servlet 到 jsp 上显示成功消息

提交时PHP表单不显示成功或错误消息

成功查询后未显示成功消息,但表单数据仍然发送到DB

表单提交成功后如何在 div 中创建成功消息?