投放本站广告请联系:
extjscn#126.com
ExtJs editor插件扩展
Ext.ux.grid.RowEditor 是个非常不错的插件,但是不便之处就是不同gird 总要根据这个grid制定相应的编辑器,因为每个grid修改后post给后台的参数不一样,主要麻烦在自定义post参数上面,其实很早之前就想自己稍微扩展下,让它自动帮我识别参数,下面是代码,希望借此抛砖引玉(插入js不行,):
Ext.ns("Test", "Test.Office"); Test.Office.editor=function(config){ //this.Params = Object.keys(this.rec[0].json); //取得参数索引 //Test.Office.editor.superclass.constructor.call(this,config) var defConf={ saveText: 'Save', listeners:{ 'afteredit':function(){ var s =Ext.getCmp(config.gridId).getSelectionModel().getSelections(); var Params = Object.keys(s[0].json); var tempArr = {}; for(var i in Params){ if(Params.hasOwnProperty(i)){ tempArr[Params[i]]=s[0].get(Params[i]); } } //params = JSON.stringify(tempArr); var params = Ext.encode(tempArr); console.log(params); Ext.Ajax.request({ url:config.url, method:'POST', //params:params, params:tempArr, success:function(response){ var obj = Ext.decode(response.responseText); if(obj.success){ Ext.MessageBox.alert("提示","修改成功"); config.ds.reload(); }else{ Ext.MessageBox.alert("提示","修改失败"); } } }) }, 'canceledit':function(){ config.ds.reload(); } } }; Ext.apply(config,defConf); Test.Office.editor.superclass.constructor.call(this,config) }; Ext.extend(Test.Office.editor,Ext.ux.grid.RowEditor,{});
使用方法:
title:'ip地址', items:[{ xtype:'grid', id:'ipGrid', height:400, plugins:[new Test.Office.editor({"url":"/assetmgent/index.php?mod=ip&action=busindex&resourceId/","gridId":"ipGrid"})], style:{ marginTop: '10px', marginRight:'5px', marginLeft:'5px', }, viewConfig:{forceFit:true}, selModel:new Ext.grid.RowSelectionModel({singleSelect:false}), store:new Ext.data.JsonStore({ root:"data", url:"/assetmgent/index.php?mod=ip&action=busindex&resourceId="+obj.id, fields:['f_mapId','f_idc_name','f_ip','f_isp','f_status','f_remark'], autoLoad:true }),
作者:howge
原文:http://blog.chinaunix.net/uid-17291169-id-3672207.html
- 关键字:
- 要发表评论,请先登录