Ext.GridPanel 用法总结(一)—— Grid基本用法

GridPanel类是基于基础列表接口具代表性的主要实现类。也是最常用的Ext组件之一。

一:首先定义grid的数据源

view plaincopy to clipboardprint?
 //初始化Ext状态管理器,在Cookie中记录用户的操作状态,如果不启用,象刷新时就不会保存当前的状态,而是重新加载                   
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());    
    Ext.QuickTips.init();       //显示提示信息   
    var pageSize=10;//定义每页显示的行数   
  //定义数据字段    
 var fields = ["journal_id","journal_name","journal_organizer","journal_level","is_core"];   
//定义数据源      
 journal_store = new Ext.data.Store({   
        // 获取数据   
         proxy:new Ext.data.HttpProxy(   
           {   
                 url:"Data/SystemManage/Journal/JournalsInfo.aspx",//获取数据的后台地址   
                 method:"POST"  
           }),   
           //解析json   
           reader:new Ext.data.JsonReader(   
           {   
                fields:fields,   
                root:"data",   
                id:"roleId",   
                totalProperty:"totalCount"          //总的数据条数   
           })   
    });   
//根据参数加载数据   
 journal_store.load({params:{journal_name:journal_name,journal_organizer:journal_organizer,journal_level:journal_level,is_core:is_core,start:0,limit:pageSize}});   
 //初始化Ext状态管理器,在Cookie中记录用户的操作状态,如果不启用,象刷新时就不会保存当前的状态,而是重新加载                
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); 
    Ext.QuickTips.init();       //显示提示信息
    var pageSize=10;//定义每页显示的行数
  //定义数据字段 
 var fields = ["journal_id","journal_name","journal_organizer","journal_level","is_core"];
//定义数据源   
 journal_store = new Ext.data.Store({
  // 获取数据
   proxy:new Ext.data.HttpProxy(
           {
                 url:"Data/SystemManage/Journal/JournalsInfo.aspx",//获取数据的后台地址
                 method:"POST"
           }),
           //解析json
           reader:new Ext.data.JsonReader(
        {
       fields:fields,
    root:"data",
                id:"roleId",
                totalProperty:"totalCount"          //总的数据条数
           })
 });
//根据参数加载数据
 journal_store.load({params:{journal_name:journal_name,journal_organizer:journal_organizer,journal_level:journal_level,is_core:is_core,start:0,limit:pageSize}}); 

二:定义其选择列、行号、列等

view plaincopy to clipboardprint?
//--------------------------------------------------列选择模式   
    var sm = new Ext.grid.CheckboxSelectionModel({   
    dataIndex:"roleId"  
    });   
    var index= new Ext.grid.RowNumberer();//行号   
    //--------------------------------------------------列头   
     var colModel = new Ext.grid.ColumnModel   
        (   
            [   
                index,   
                sm,   
                {header:"序号",width:100,dataIndex:'journal_id',sortable:true},      
                {header:"期刊名称",width:80,dataIndex:'journal_name',sortable:true},   
                {header:"主办单位",width:110,dataIndex:'journal_organizer',sortable:true},   
                {header:"期刊级别",width:100,dataIndex:'journal_level',sortable:true},   
                {header:"是否核心",width:110,dataIndex:'is_core',sortable:true},   
                 
                {header:"操作",width:100,dataIndex:'journal_id',sortable:true,renderer:delfun}   
            ]   
        );  
//--------------------------------------------------列选择模式
    var sm = new Ext.grid.CheckboxSelectionModel({
 dataIndex:"roleId"
 });
 var index= new Ext.grid.RowNumberer();//行号
 //--------------------------------------------------列头
     var colModel = new Ext.grid.ColumnModel
        (
            [
                index,
             sm,
                {header:"序号",width:100,dataIndex:'journal_id',sortable:true},   
                {header:"期刊名称",width:80,dataIndex:'journal_name',sortable:true},
                {header:"主办单位",width:110,dataIndex:'journal_organizer',sortable:true},
                {header:"期刊级别",width:100,dataIndex:'journal_level',sortable:true},
                {header:"是否核心",width:110,dataIndex:'is_core',sortable:true},
              
                {header:"操作",width:100,dataIndex:'journal_id',sortable:true,renderer:delfun}
            ]
        );

三:定义表格grid

view plaincopy to clipboardprint?
journal_grid = new Ext.grid.GridPanel   
        (   
            {   
                id:'id_journal_grid',                     //grid的id     
                autoHeight:true,   
                autoWidth:true,   
                sm:sm,   
                cm:colModel, //行列   
                loadMask:true,   
                   
                store:journal_store, //数据源   
                   
                trackMouseOver:true, //鼠标特效   
                autoScroll:true,   
                stripeRows:true,   
                viewConfig:{   
                    columnsText:"显示/隐藏列",   
                    sortAscText:"正序排列",   
                    sortDescText:"倒序排列",   
                    forceFit:true  
                },  
journal_grid = new Ext.grid.GridPanel
        (
            {
                id:'id_journal_grid',                     //grid的id  
                autoHeight:true,
                autoWidth:true,
                sm:sm,
                cm:colModel, //行列
                loadMask:true,
                
                store:journal_store, //数据源
                
                trackMouseOver:true, //鼠标特效
                autoScroll:true,
                stripeRows:true,
                viewConfig:{
           columnsText:"显示/隐藏列",
           sortAscText:"正序排列",
           sortDescText:"倒序排列",
           forceFit:true
          },

四:定义工具栏

view plaincopy to clipboardprint?
tbar:  //工具条   
                [   
                 {                       
                    text: '刷新',   
                    cls: 'x-btn-text-icon details',   
                    
                    handler: function(btn, pressed)   
                    {//重置查询条件   
                      Ext.getCmp("QueryForm").findById('journalName').reset();   
                        Ext.getCmp("QueryForm").findById('journalOrganizer').reset();   
                        Ext.getCmp("QueryForm").findById('journalLevel').reset();   
                        Ext.getCmp("QueryForm").findById('JournalIsCore').reset();   
                          journal_store.load({params:{start:0,limit:pageSize}});     
                          //数据源从新加载   
                    }   
                },    
                '-',    
                {                       
                    text: '添加',   
                    handler: function(btn, pressed)   
                    {   
                       AddJournalInfo();       //添加新的角色信息   
                          
                    }   
                }, '-',                  
                {                       
                    text: '编辑',   
                    handler: function(btn, pressed)   
                    {     
                           var row=Ext.getCmp("id_journal_grid").getSelectionModel().getSelections();//选择行的个数   
                                 if(row.length==0)   
                                {   
                                    Ext.Msg.alert("提示信息","请您至少选择一个!");   
                                }   
                                else if(row.length>1){     
                                    Ext.Msg.alert("提示信息","对不起只能选择一个!");   
                                }else if(row.length==1)   
                                {   
                                   EditJournalInfo(row[0]);//传行一行记录直接加载 编辑角色信息   
                                }                      
                    }   
                }, '-',                  
                {                       
                    text: '删除',   
                    handler: function(btn, pressed)   
                    {   
                           var row=Ext.getCmp("id_journal_grid").getSelectionModel().getSelections();    //获取选中的行   
                            if(row.length==0)   
                            {   
                                Ext.Msg.alert("提示信息","请您至少选择一个!");   
                            }   
                            else{     
                                Ext.Msg.confirm("提 示!","您确定要删除吗?",function(btn){    
                                    if(btn=="yes")   
                                    {   
                                                                              
                                       DeleteJournalInfo(row);//删除角色信息   
                                    }   
                                    else  
                                    {   
                                          
                                    }   
                                })   
                            }    
                    }   
                },'-',    
                {                       
                    text: '综合查询',   
                    handler: function(btn, pressed)   
                    {   
                        
                     Ext.getCmp("QueryForm").toggleCollapse(true);//将formset展开   
                       
                    }   
                }, '-'  
                ]  
tbar:  //工具条
          [
           {                    
                    text: '刷新',
                    cls: 'x-btn-text-icon details',
                 
                    handler: function(btn, pressed)
                    {//重置查询条件
                      Ext.getCmp("QueryForm").findById('journalName').reset();
                        Ext.getCmp("QueryForm").findById('journalOrganizer').reset();
                        Ext.getCmp("QueryForm").findById('journalLevel').reset();
                        Ext.getCmp("QueryForm").findById('JournalIsCore').reset();
                          journal_store.load({params:{start:0,limit:pageSize}});  
                          //数据源从新加载
                    }
                }, 
                '-', 
                {                    
                    text: '添加',
                    handler: function(btn, pressed)
                    {
                       AddJournalInfo();       //添加新的角色信息
                       
                    }
                }, '-',               
                {                    
                    text: '编辑',
                    handler: function(btn, pressed)
                    {  
                           var row=Ext.getCmp("id_journal_grid").getSelectionModel().getSelections();//选择行的个数
                                 if(row.length==0)
                                {
                                    Ext.Msg.alert("提示信息","请您至少选择一个!");
                                }
                                else if(row.length>1){  
                                    Ext.Msg.alert("提示信息","对不起只能选择一个!");
                                }else if(row.length==1)
                                {
                                   EditJournalInfo(row[0]);//传行一行记录直接加载 编辑角色信息
                                }                   
                    }
                }, '-',               
                {                    
                    text: '删除',
                    handler: function(btn, pressed)
                    {
                           var row=Ext.getCmp("id_journal_grid").getSelectionModel().getSelections();    //获取选中的行
                            if(row.length==0)
                            {
                                Ext.Msg.alert("提示信息","请您至少选择一个!");
                            }
                            else{  
                                Ext.Msg.confirm("提 示!","您确定要删除吗?",function(btn){ 
                                    if(btn=="yes")
                                    {
                                                                           
                                       DeleteJournalInfo(row);//删除角色信息
                                    }
                                    else
                                    {
                                       
                                    }
                                })
                            } 
                    }
                },'-', 
                {                    
                    text: '综合查询',
                    handler: function(btn, pressed)
                    {
                     
                     Ext.getCmp("QueryForm").toggleCollapse(true);//将formset展开
                    
                    }
                }, '-'
          ]

五:设置分页

view plaincopy to clipboardprint?
//分页   
                bbar:new Ext.PagingToolbar({   
                    store:journal_store,           //数据源   
                    pageSize:pageSize,   
                    //显示右下角信息   
                    displayInfo:true,   
                    displayMsg:'当前记录 {0} -- {1} 条 共 {2} 条记录',   
                    emptyMsg:"No results to display",   
                    prevText:"上一页",   
                    nextText:"下一页",   
                    refreshText:"刷新",   
                    lastText:"最后页",   
                    firstText:"第一页",   
                    beforePageText:"当前页",   
                    afterPageText:"共{0}页"  
                    })   
            });  
//分页
          bbar:new Ext.PagingToolbar({
           store:journal_store,           //数据源
           pageSize:pageSize,
           //显示右下角信息
           displayInfo:true,
           displayMsg:'当前记录 {0} -- {1} 条 共 {2} 条记录',
              emptyMsg:"No results to display",
              prevText:"上一页",
           nextText:"下一页",
           refreshText:"刷新",
           lastText:"最后页",
           firstText:"第一页",
           beforePageText:"当前页",
           afterPageText:"共{0}页"
                   })
            });

六:设置右键菜单

view plaincopy to clipboardprint?
//为右键菜单添加事件监听器   
      journal_grid.addListener('rowcontextmenu',rightClickFn);   
       var rightClick = new Ext.menu.Menu   
       (   
           {   
               items:   
               [   
                   {   
                       id: 'rMenu1',   
                       handler:AddJournalInfo,//点击后触发的事件   
                       text: '增加角色'  
                   },   
                   {   
                       id:'rMenu2',   
                       text:'编辑角色',   
                       handler:function()   
                           {   
                              JournalEdit();   
                           }   
                   },   
                    {   
                       id:'rMenu3',   
                       text:'删除角色',   
                       handler: function()   
                       {   
                          JournalDelete();   
                       }   
                   }   
                      
               ]   
           }   
       ); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值