投放本站广告请联系:
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
- 关键字:
- 要发表评论,请先登录

