2017-07-11 4 views
0

Je souhaite afficher une boîte de confirmation lorsque l'utilisateur clique sur Enregistrer après avoir modifié les données dans JqGrid. Veuillez trouver mon code ci-dessous.Boîte de confirmation JQGrid après l'enregistrement des données modifiées

function FetchAccountMapping() { 
    try { 
     if (ValidateForm()) { 
      var selectedsearchoption = $('#ddlSearchOption').val(); 

      $("#jqGrid").show(); 
      $("#jqGrid").jqGrid("clearGridData"); 

      if (!firstclick) { 
       var url = '/utility/utilityhandler.aspx'; 
       $("#jqGrid").jqGrid('setGridParam', { 
        url: url, 
        postData: { 
         command: 'fetchmobileaccountmapping', 
         username: function() { return (selectedsearchoption == "username") ? $('#txtUsername').val() : ''; }, 
         useremail: function() { return (selectedsearchoption == "useremail") ? $('#txtUseremail').val() : ''; }, 
         useremailhash: function() { return (selectedsearchoption == "useremail") ? $('#txtUseremail').val().hashCode() : ''; } 
        }, 
        onSelectRow: editRow 
       }); 
       $("#jqGrid").trigger("reloadGrid"); 
      } 
      else { 
       $("#jqGrid").jqGrid({ 
        url: '/utility/utilityhandler.aspx', 
        postData: { 
         command: 'fetchmobileaccountmapping', 
         username: function() { return (selectedsearchoption == "username") ? $('#txtUsername').val() : ''; }, 
         useremail: function() { return (selectedsearchoption == "useremail") ? $('#txtUseremail').val() : ''; }, 
         useremailhash: function() { return (selectedsearchoption == "useremail") ? $('#txtUseremail').val().hashCode() : ''; } 
        }, 
        datatype: "json", 
        styleUI: "Bootstrap", 
        colNames: ["MobileAccountMappingID", "Username", "Email", "App Name", "Active"], 
        colModel: [ 
         { 
          label: 'nMobileAppAccountUserMappingID',name: 'nMobileAppAccountUserMappingID',key: true,hidden: true,editable: true 
         }, 
         { 
          label: 'Username',name: 'Username',width: 250,search: true,editable: true, editoptions: { readonly: "readonly" } 
         }, 
         { 
          label: 'Email',name: 'Email',width: 500,search: true, editable: true, editoptions: { readonly: "readonly" } 
         }, 
         { 
          label: 'nvcMobileAppName',name: 'nvcMobileAppName',width: 150,search: true, editable: true, editoptions: { readonly: "readonly" } 
         }, 
         { 
          label: 'bDeactivated',name: 'bDeactivated',width: 150,editable: true,edittype: 'checkbox', editoptions: { value: "Yes:No" }, 
         } 
        ], 
        viewrecords: true, 
        width: "auto", 
        height: "auto", 
        rowNum: 20, 
        loadonce: false, 
        pager: "#jqGridPager", 
        jsonReader: { 
         root: "Table", 
         repeatitems: false 
        }, 
        gridview: true, 
        caption: "Mobile Account Mapping List", 
        //onSelectRow: editRow, 
        inlineEditing: { 
         keys: true 
        } 
       }); 
       $("#jqGrid").jqGrid('inlineNav', '#jqGridPager', 
       { 
        edit: true,add: false,del: false,search: false 
       }, 
       { 
        zIndex: 100, 
        navkeys: false, 
        url: '/utility/utilityhandler.aspx?command=editnewsletter', 
        checkOnSubmit: true, 
        closeOnEscape: true, 
        reloadAfterSubmit: true, 
        afterComplete: function (response) { 
         var jsonResponse = $.parseJSON(response.responseText); 
         alert(jsonResponse.ResponseMessage); 
        } 
       }); 
       firstclick = false; 
      } 
     } 
    } catch (e) { 
     alert(e); 
    } 
} 

J'ai essayé checkOnSubmit et beforeSubmit. Les deux n'ont pas fonctionné pour moi. J'ai essayé d'appeler une fonction sur beforeSubmit et essayé de rendre une boîte de dialogue dedans. Même cela n'a pas aidé.

Répondre

1

Peut-être que vous devriez publier votre code comment vous essayez d'utiliser l'événement beforeSubmit. Fondamentalement, cet événement doit retourner tableau (see Guriddo jqGrid documentation events)

la façon dont sinple vous pouvez faire est:

... 
beforeSubmit : function(postdata, form , oper) { 
    if(confirm('Are you sure you want to update this row?')) { 
     // do something 
     return [true,'']; 
    } else { 
     return [false, 'You can not submit!']; 
    } 
} 

Cordialement

+0

Cela ne fonctionne pas. L'événement ne se déclenche pas. –

+0

Où vous mettez cet événement ?. Il devrait être mis en édition et/ou ajouter des options du navigateur –

+0

S'il vous plaît regardez la démo suivante [ici] (http://www.guriddo.net/demo/guriddojs/edit_add_delete/dialogs/index.html) –