Ext.define (' Ext.App.Areas.System.Para.ParaController ', {extend:' Ext.app.ViewController ', alias:' Controller. Paracontroller ', isediting:false,//Edit State /*Refresh button click*/Onrefreshclick:function(Button, E, eopts) {varme = This; if(Me.isediting = =false) { varGrid = Me.view.down (' #paraGridPanel '); Ext.apply (Grid.store.proxy.extraParams, {}); Grid.store.load ({params: {}}); } }, /*Add a button click*/Oncreateclick:function(Button, E, eopts) {varme = This; if(Me.isediting = =false) { varGrid = Me.view.down (' #paraGridPanel '); Grid.store.insert (0, {}); Grid.editingPlugin.cancelEdit (); Grid.editingPlugin.startEdit (0, 0); } }, /*Edit button Click*/Onupdateclick:function(Button, E, eopts) {varme = This; if(Me.isediting = =false) { varGrid = Me.view.down (' #paraGridPanel '); varSelections =grid.getselection (); Grid.editingPlugin.cancelEdit (); Grid.editingPlugin.startEdit (selections[0], 0); } }, /*Delete button click*/Ondeleteclick:function(Button, E, eopts) {varme = This; if(Me.isediting = =false) { varGrid = Me.view.down (' #paraGridPanel '); varSelections =grid.getselection (); if(Selections.length > 0) {Ext.MessageBox.confirm (' Hint ', ' OK to delete the selected record? ' ‘,function(BTN) {if(btn = = ' Yes ') { varAjaxurl =Grid.store.proxy.api.destroy; varDelarr = []; for(vari = 0; i < selections.length; i++) {Delarr.push (selections[i].data[' ID ']); } Ext.Ajax.request ({url:ajaxurl, Params:de Larr.join (‘,‘), Success:function(response, opts) {varJSON =Ext.decode (Response.responsetext); if(Json.status = =true{ext.toast ({html:' <span style= ' font-weight:bold; > ' + json.info + ' </span> ', closable:false, align:' t ', Slideinduration:400, MinWidth:330 }); /*Remove Deleted Items*/ for(vari = 0; i < selections.length; i++) {grid.store.remove (selections[i]); } } Else{Ext.MessageBox.show ({Icon:Ext.MessageBo X.error, Msg:json.info, Buttons:Ext.Messag Ebox.ok}); }}, Failure:function(response, opts) {Ext.MessageBox.show ({Msg:respo Nse.responsetext, Buttons:Ext.MessageBox.OK}); } }); } }); } } }, /*Add or modify preparation*/Onbeforeedit:function(editor, context, eopts) {varme = This; if(Me.isediting! =false)//enter edit state to blockContext.cancel =true; Me.isediting=true; varUpdateButton = Me.view.down (' #update '); if(UpdateButton.bind.disabled.lastValue = =true&& context.record.data[' ID ']! = undefined) {//Judging Edit PermissionsContext.cancel =true; Me.isediting=false;//fix Edit Status } /*other data corresponding to loading (such as: Provinces and cities linkage)*/ }, /*Add or modify a save*/OnEdit:function(editor, context, eopts) {varme = This; varAjaxurl =context.store.proxy.api.update; varOriginalvalues = context.originalvalues;//Raw Data varNewValues = context.newvalues;//New Data if(newvalues[' ID ') = =undefined) Ajaxurl=context.store.proxy.api.create; /*Ext.Object.equals: The field value is null and the field value is ' ' also represents unequal, here the opposite is required*/Ext.Object.each (originalvalues,function(key, value, scope) {if(Key! = ' && value = =NULL) Originalvalues[key]= ' '; }); if(Ext.Object.equals (newValues, originalvalues) = =false) {/*determine changes to avoid unnecessary submissions*/Ext.Ajax.request ({url:ajaxurl, params:newvalues, success: function(response, opts) {varJSON =Ext.decode (Response.responsetext); if(Json.status = =true{ext.toast ({html:' <span style= ' font-weight:bold; > ' + json.info + ' </span> ', closable:false, align:' t ', Slideinduration:400, MinWidth:330 }); /*hidden field Assignment*/ if(context.record.data[' ID ') = =undefined) {Context.record.set (' id ', json.data[' id ']); Context.record.set (' Createtime ', json.data[' createtime ']); /*It's not a perfect place.*/} context.store.commitChanges (); } Else{Ext.MessageBox.show ({Icon:Ext.MessageBox.ERROR, Msg:json.info, Buttons:Ext.MessageBox.OK}); Context.store.rejectChanges (); }}, Failure:function(response, opts) {Ext.MessageBox.show ({msg:response.responseText, Buttons:Ext.MessageBox.OK}); Context.store.rejectChanges (); } }); } Else{context.store.commitChanges (); } me.isediting=false; }, /*Add or modify a cancel*/Oncanceledit:function(editor, context, eopts) {varme = This; Context.store.rejectChanges (); Me.isediting=false; }});
EXTJS5 Gridpanel RowEditing Notes 01