zoukankan      html  css  js  c++  java
  • Ext Gridpanel的用法

    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:"序号",100,dataIndex:'journal_id',sortable:true},     
                    {header:"期刊名称",80,dataIndex:'journal_name',sortable:true},  
                    {header:"主办单位",110,dataIndex:'journal_organizer',sortable:true},  
                    {header:"期刊级别",100,dataIndex:'journal_level',sortable:true},  
                    {header:"是否核心",110,dataIndex:'is_core',sortable:true},  
                    
                    {header:"操作",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:"序号",100,dataIndex:'journal_id',sortable:true},  
                    {header:"期刊名称",80,dataIndex:'journal_name',sortable:true},
                    {header:"主办单位",110,dataIndex:'journal_organizer',sortable:true},
                    {header:"期刊级别",100,dataIndex:'journal_level',sortable:true},
                    {header:"是否核心",110,dataIndex:'is_core',sortable:true},
                 
                    {header:"操作",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();  
                           }  
                       }  
                         
                   ]  
               }  
           ); 

    文章出处:http://blog.csdn.net/goldlqch/archive/2009/05/25/4214178.aspx

    感谢博友!!

  • 相关阅读:
    JoymobilerV2.2.1发布
    对fckstyles.xml加载失败问题的解决
    角摩网改版了,突出手机电子书,手机游戏,手机软件等栏目
    J2ME的学习--编译出错
    角摩手机电子书生成专家 V2.1发布,可以合并txt,umd小说
    jmbook.dat的手机电子书格式
    Joymobiler角摩手机电子书生成专家
    绿色小巧的手机电子书制作+阅读器(支持txt,jar,umd,chm)V2.3发布
    角摩网给各网站提供在线手机电子书制作接口
    joymbiler角摩电子书专家升级至V2.6
  • 原文地址:https://www.cnblogs.com/xuankai1987/p/5441404.html
Copyright © 2011-2022 走看看