2

编辑 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. 以绿色显示成功消息(不工作)
4

3 回答 3

1

方法“afterSubmit”的文档说: “(如果成功为真,则忽略消息)。”

你应该使用黑客。将此代码放在您的 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 的版本。

于 2012-09-29T06:40:03.067 回答
1

只是从@Gab 中汲取灵感,这是我的最终代码,效果很好。closeAfterEdit 如果设置为真,上述解决方案不显示味精,所以我创建了新对话框。

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,""];
    } 
}
于 2013-10-17T10:40:14.273 回答
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
        }, 
于 2017-12-20T12:53:52.330 回答