Extjs4.0 Demo

第一步先搭建可以Mian框架,用来作为整体的布局:

 Ext.create("Ext.panel.Panel",{
                alias:'widget.mainlayout',
                 renderTo: Ext.getBody(),
                 width:900,
                 height:600,
                defaults:{
                    split:true,
                    bodyStyle:'padding 1px'
                },
                layout:'border',//布局
                items:[
                    {
                        title:'后台管理',
                        region:'west',//在布局的西面
                        xtype:'panel',
                         iconCls: 'icon-edit',
                        margins:'5,2,5,5,',//内间距
                        width:200,
                        collapsible:true,//面板可折叠
                        id:'west-tree',
                        layout:'fit',
                        items:[
                                tree
                        ]
                    },{
                        title:'用户信息表',
                        region:'center',//在布局的西面
                        xtype:'panel',
                         iconCls: 'icon-del',
                        id:'center-grid',
                        layout:'fit',
                        margins:'5,5,5,0',//内间距]
                        items:[                    
                                contentPanel
                         ]
                    }    
                ]
            });


第二步新建Model,相当于java里面的class

Ext.define("user",{
            extend:"Ext.data.Model",
            fields:[
                {name:'username',type:'string',sortable:true},
                   {name:'id',type:'int',sortable:true},
                   {name:'name',type:'string',sortable:true},
                   {name:'pwd',type:'string',sortable:true},
                   {name:'rights',type:'int',sortable:true},
                   {name:'phone',type:'string',sortable:true},
                   {name:'photo',type:'string',sortable:true},
                   {name:'email',type:'string',sortable:true}
            ]
        });


第三步简历动态代理,通过服务器后台提取数据

Ext.create("Ext.data.Store",{
            model:'user',
            storeId:'s_user',
            proxy:{
                type:'ajax',
                url:"/wbt/userAation.jspx?func=getUserList",//ajax请求
                reader:{
                    type:'json'//以json类型读写数据
                },
                writer:{
                    type:'json'
                }
            },
            autoLoad:true
        });
第四步,建立一个grid用来加载数据

var grid=Ext.create("Ext.grid.Panel",{
                  title:"表格1",//标题
                  frame:true,//面板渲染
                  //forceFit:true,//自动填充panel空白处,这个跟多选冲突的
                  width:670,
                  columns:[
                      {text:"id",dataIndex:'id',width:100},//列名
                      {text:"username",dataIndex:'username',width:100},
                      {text:"eamil",dataIndex:'email',width:350,
                          field:{
                              xtype:'textfield',
                              allowBlank:false
                          }//编辑列模式,这个可以该模式的
                      }
                  ],//列模式的集合
                  tbar:[//表格的工具栏
                      {
                          xtype:'button',//别称
                          text:'添加',
                          iconCls: 'icon-add',//这里加图标,可以选择样式
                      },
                      {
                          xtype:'button',//别称
                          text:'删除',
                           iconCls: 'icon-del',
                          handler:function(buttonObj){
                              //得到gird方法1
                              //var grid=buttonObj.findParentByType("gridpanel");//通过类型找到父类
                              var grid=buttonObj.ownerCt.ownerCt;//ownerCT父级
                              //alert(grid.getStore().getCount());
                              var data=grid.getSelectionModel().getSelection();//得到被选择
                              if(data.length==0){//选择是否为0
                                  Ext.Msg.alert("提示","您最少要选择一条数据");
                              }else{
                                  //第一步:现在得到ID的数组(name代替)
                                      var st=grid.getStore();
                                      var ids=[];//建立一个数组
                                      Ext.Array.each(data,function(record){
                                          ids.push(record.get('name'));
                                      });
                                  //第二步:后台操作
                                      Ext.Ajax.request({
                                          url:'/wbt/delete.jspx',
                                          params:{ids:ids.join(",")},
                                          method:"POST",
                                          timeout:2000,//延迟秒数
                                          success:function(response,options){
                                          //第三步:前端错做DOM进行删除(EXTJS)
                                              Ext.Array.each(data,function(record){
                                                    st.remove(record);
                                                });
                                          }
                                      });
                              }
                          }
                      },
                      {
                          xtype:'button',//别称
                          text:'保存',
                          iconCls:'icon-save'
                      },
                      {
                          xtype:'button',//别称
                          text:'查看',
                            iconCls: 'icon-save',
                          handler:function(buttonObj){
                            //得到gird方法1
                            //var grid=buttonObj.findParentByType("gridpanel");//通过类型找到父类
                            var grid=buttonObj.ownerCt.ownerCt;//ownerCT父级
                            //alert(grid.getStore().getCount());
                            var data=grid.getSelectionModel().getSelection();//得到被选择
                            if(data.length==0){//选择是否为0
                                Ext.Msg.alert("提示","您最少要选择一条数据");
                            }else{
                                //第一步:现在得到ID的数组(name代替)
                                    var st=grid.getStore();
                                    var ids=[];//建立一个数组
                                    Ext.Array.each(data,function(record){
                                        ids.push(record.get('id'));
                                        Ext.getCmp("winform").show();
                                        Ext.getCmp("id").setValue(record.get('id'));
                                        Ext.getCmp("username").setValue(record.get('username'));
                                        Ext.getCmp("name").setValue(record.get('name'));
                                        Ext.getCmp("phone").setValue(record.get('phone'));
                                        Ext.getCmp("email").setValue(record.get('email'));
                                    });    
                            }
                        }
                      }
                  ],
                  dockedItems:[//分页工具栏
                       {
                           xtype:'pagingtoolbar',
                           store:Ext.data.StoreManager.lookup('s_user'),
                           dock:'bottom',//放的位置
                            displayInfo:true
                       }
                   ],
                   plugins:[//单原格编辑插件
                          Ext.create("Ext.grid.plugin.CellEditing",{
                              clickToEdit:2//写2就是双击
                              //接下去要重构列模式
                              //....到上面去改
                          })
                   ],
                   selType:'checkboxmodel',//允许单选(选择模式)
                   multiSelect:true,//允许多选
                  renderTo:"gridDemo",//渲染到div中
                  store:Ext.data.StoreManager.lookup('s_user'),
                  
              });

        });

第五步:写一个测试用的treeStore

var store = Ext.create('Ext.data.TreeStore', {
              root: {
                  expanded: true,
                  //checked:是否能被选中
                  children: [
                      { text: "影片管理", checked:false,expanded: true,id:'01', children: [
                          { text: "座位管理", checked:false, leaf: true,id:'0101' },
                          { text: "影片管理", checked:false, leaf: true,id:'0102'}
                      ] },
                      { text: "影院管理", checked:false,expanded: true,id:'02',children:[
                          {text:"影院信息", checked:false,leaf:true,id:'0201'},
                          {text:"最近活动", checked:false,leaf:true,id:'0202'}
                      ] },
                    { text: "用户管理", checked:false,expanded: true,id:'03',children:[
                           {text:"用户信息", checked:false,leaf:true,id:'getUserList'},
                           {text:"聊天管理", checked:false,leaf:true,id:'0302'}
                     ] }
                  ]
              }
          });

第六步:加载treeStore里面的数据,画出tree部分

var tree=Ext.create('Ext.tree.Panel', {
              title: 'Simple Tree',
              width: 200,
              height: 250,
              dockedItems:[{
                  xtype:'toolbar',
                  dock:'left',
                  //ui:'footer',改变样式
                  items:[
                        {
                            xtype:'button',
                            text:'增加',
                            id:'add',
                            handler:function(b,e){
                                var tree=b.ownerCt.ownerCt;//得到tree
                                var nodes=tree.getChecked();
                                if(nodes.length==1){
                                    var node=nodes[0];
                                    node.appendChild({
                                        text:"技术架构组", checked:false,leaf:true
                                    });
                                }else{
                                    alert('必须选择一个节点');
                                }
                              }},
                        {xtype:'button',text:'删除',id:'delete'},
                        {xtype:'button',text:'更新',id:'update'}
                      ]
                          },{
                              xtype:'toolbar',
                              items:[{
                                  xtype:'button',
                                  id:'allopen',
                                  text:'展开所有',
                                 handler:function(b,e){
                                  var tree=b.ownerCt.ownerCt;
                                  tree.expandAll();//展开所有
                              }
                              },{
                                  xtype:'button',
                                id:'allclose',
                                text:'收起所有',
                               handler:function(b,e){
                                  var tree=b.ownerCt.ownerCt;
                                  tree.collapseAll();//展开所有
                              }
                               
                              }]
                          }],
              store: store,
              rootVisible:false,//控制显隐的属性
              renderTo: Ext.getBody()
          });

第七步:利用<iframe>标签动态进行页面的切换

var contentPanel = {
                  id: 'content-panel',
                  region: 'center',
                  layout: 'card',
                  margins: '2 5 5 0',
                  activeItem: 0,
                  border: false,
                  items: [{
                      id: 'contentPanel',
                      margins: '2 2 2 2',
                      border: false,
                      html:"<iframe id='iframe-content' frameborder='0' width='100%' height='100%' src='http://www.baidu.com'></iframe>"
                  }]
          };

tree.on("itemclick",function(tree,record,item,index,e,options){
              //alert(record.get('id'));
              document.getElementById("iframe-content").src ="/wbt/"+record.get('id')+".jspx";
          });

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值