2012-06-20 4 views
2

EDIT СУНРПоказать на успех Jqgrid формы EDIT

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. Но то же самое не happeing для сообщения успеха. Я могу захватить его, но не могу отображать в форме редактирования jqgrid. Должен ли я использовать другое событие для отображения сообщения об успешном завершении.

Мои требования:

  1. Показать сообщение об ошибке в красном (рабочее) сообщение об успешном завершении
  2. зеленый индикатор (не работает)
+0

Любой орган получил ответ на этот вопрос? Просто хотите отобразить сообщение об успешном завершении редактирования формы Jqgrid – user1411143

ответ

1

documentation метода "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.

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,""]; 
    } 
} 
0

Вы можете использовать следующий код:

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 
     }, 
Смежные вопросы