/** * @title:新闻中心模块 * @author:余晓天 * @date:2009/2/13 */ /**初始化FormPanel***************************************************************************************************/ NewsFormPanel=Ext.extend(Ext.FormPanel,{ //传参 url:null , constructor:function(_cfg){ if(_cfg==null) _cfg={}; Ext.apply(this,_cfg); //初始化构造函数 NewsFormPanel.superclass.constructor.call(this,{ width:250, height:210, frame:true, resizable:false, layout:"form", labelWidth:60, buttonAlign:"center", defaultType:"textfield", baseCls:"x-plain", items:[ { name:"name", fieldLabel:"姓名", anchor:"90%", allowBlank:false, emptyText:"姓名不能为空" }, { xtype:"combo", mode:"local", value:"男", hiddenName:"sex", triggerAction:"all", displayField:"sex", readOnly:true, store:new Ext.data.SimpleStore( { fields:["sex"], data:[["男"],["女"]] } ), name:"sex", fieldLabel:"性别", anchor:"90%" }, { name:"age", fieldLabel:"年龄", anchor:"90%", vtype:"age", allowBlank:false }, { name:"pwd", inputType:"password", fieldLabel:"密码", allowBlank:false, anchor:"90%" }, { xtype:"datefield", readOnly:true, name:"time", fieldLabel:"注册时间", anchor:"90%", allowBlank:false, format:"Y-m-d" } ] }) this.addEvents("submit"); }, //按钮事件提交方法 submit:function(_params){ if(_params==null) _params={}; if(this.url!=null) this.getForm().submit({url:this.url,params:_params,success:this.onSubmit,waitTitle:"数据传送",waitMsg:"数据传送中...",scope:this}); }, //得到form列表值方法 getValues:function(){ return new Ext.data.Record(this.getForm().getValues()); }, //设置form列表值方法 setValues:function(_rs){ this.getForm().loadRecord(_rs); } , //清空form列表 reset:function(){ this.getForm().reset(); }, //提交事件触发定义 onSubmit:function(_form,_action) { this.fireEvent("submit",this,_action); } }); /**初始化window*******************************************************************************************************/ NewsWindow=Ext.extend(Ext.Window,{ form:null, url:"", //初始化参数 constructor:function(_cfg){ if(_cfg==null) _cfg={}; Ext.apply(this,_cfg); //添加form this.form=new NewsFormPanel({url:this.url}); NewsWindow.superclass.constructor.call(this,{ width:250, height:230, plain:true, modal:true, resizable:false, buttonAlign:"center", items:this.form, bodyStyle:"padding:3px", closeAction:"hide", buttons:[{ text:"确 定", handler:function(){ this.OnSubmit(); }, scope:this },{ text:"取 消", handler:function(){ this.OnExitClick(); }, scope:this }] } ); this.addEvents("submit"); this.form.on("submit",this.OnSubmitClick,this); }, //获取内置form提交事件 OnSubmit:function() { this.form.submit(); }, //触发内置form提交事件 OnSubmitClick:function(_form,_action) { this.fireEvent("submit",this,_action); this.close(); }, //关闭当前window事件 OnExitClick:function() { this.close(); }, //关闭当前window方法 close:function(){ this.form.reset(); this.hide(); } }); /**初始化增加对话window********************************************************************************************/ NewsInsertGridWin=Ext.extend(NewsWindow,{ title:"增加新闻", url:"../dboperition/add.aspx " }); /**初始化修改对话window********************************************************************************************/ NewsUpdateGridWin=Ext.extend(NewsWindow,{ title:"修改新闻", params:"", url:"../dboperition/update.aspx ", load:function(_rs) { var srecord=_rs; this.form.setValues(srecord); this.params=_rs.get("id"); }, OnSubmit:function() { this.form.submit({id:this.params}); } }); /**********************************************************************************************/ /**初始化gridpanel***************************************************************************************************/ NewsGridPanel=Ext.extend(Ext.grid.GridPanel,{ //增加window初始化 insertwin:new NewsInsertGridWin(), //修改window初始化 updatewin:new NewsUpdateGridWin(), //数据读取 store:new Ext.data.Store({ url: "NewsData.aspx", reader: new Ext.data.JsonReader({ root:"data", totalProperty:"pagescount" }, [ {name:"id",type:"int"}, {name:"moduleName"}, {name:"channelName"}, {name:"title"}, {name:"releaseTime"}, {name:"releaseMan"}]) }), //初始化参数 constructor:function(){ //参数初始化 NewsGridPanel.superclass.constructor.call(this,{ id:"newspanel", frame:true, anchor:"100%", renderTo:Ext.getBody(), height:300, bodyStyle:'width:100%', iconCls:"icon-grid", loadMask:{msg:"数据载入中...."}, tbar:[{text:"增加", tooltip:"新增", iconCls:"addicon", handler:function(){ this.insertwin.show(); }, scope:this },"-" /*{text:"修改", tooltip:"修改", iconCls:"option", handler:function(){ this.updatewin.show(); try { this.updatewin.load(this.getSelected()); } catch(err){Ext.Msg.alert ( "系统提示",err.description ); this.updatewin.close(); }; }, scope:this },"-", {text:"删除", tooltip:"删除", iconCls:"remove", handler:function(){ try {this.getSelected(); Ext.Msg.confirm("系统提示","你确认删除这条记录吗?",this.onRemove,this); } catch(err){Ext.Msg.alert("系统提示",err.description)}; }, scope:this },"-"*/ ], columns:[ {header:"序号",width:80,dataIndex:"id",sortable:true,align:"center"}, {header:"模块名称",dataIndex:"moduleName",sortable:true,align:"center"}, {header:"频道名称",width:120,dataIndex:"channelName",sortable:true,align:"center"}, {header:"标题",width:200,dataIndex:"title",sortable:true,align:"center"}, {header:"发布时间",width:150,dataIndex:"releaseTime",sortable:true,align:"center"}, {header:"发布人",dataIndex:"releaseMan",sortable:true,align:"center"}, {header:"修改",width:60,dataIndex:"id",renderer:this.UpdateRender,align:"center"}, {header:"删除",width:60,dataIndex:"id",renderer:this.DelRender,align:"center"} ], sm:new Ext.grid.RowSelectionModel({ singleSelect:true }), store:this.store, bbar:new Ext.PagingToolbar({ pageSize:5, store:this.store, displayInfo:true, displayMsg:"当前显示{0}-{1}条记录/共{2}条记录", emptyMsg:"无数据可显示!" }) }); this.store.load({params:{start:0,limit:5}}); this.insertwin.on("submit",this.onInsert,this); this.updatewin.on("submit",this.onUpdate,this); }, //修改按钮呈现 UpdateRender:function(value){ return '<a id="newupdate" href="#)">修改</a>'; } , //删除按钮呈现 DelRender:function(value){ return '<a id="newdel" href="#">删除</a>'; } , //删除记录 del:function(){ try { var _sel=this.getSelected(); Ext.Ajax.request({ url:"../dboperition/del.aspx ", params:{id:_sel.get("id")}, success:function(_rs,_op) { var result=Ext.util.JSON.decode(_rs.responseText); if(result.success==false) Ext.Msg.alert("系统信息","删除失败!") } }); this.getStore().remove(_sel); this.getStore().reload(); }catch(err) { Ext.Msg.alert("系统信息","你尚未选择一条记录!") } }, /*getSelected:function(){ if(this.getSelectionModel().getCount()==0) { throw Error("你尚未选择一条记录!") } else return this.getSelectionModel().getSelected(); },*/ //增加事件 onInsert:function(_win,_rs) { this.store.reload();; }, //修改事件 onUpdate:function(_win,_rs) { this.store.reload(); }, //删除事件 onRemove:function(_btn) { if(_btn=="yes") this.del(); } }) |
ext构造自己的组件
最新推荐文章于 2021-07-29 09:36:31 发布