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

摘自:http://www.cnblogs.com/luluping/archive/2009/08/01/1536645.html

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();  
                       }  
                   }  
                     
               ]  
           }  
       );

Ext.GridPanel 用法总结(一)—— Grid基本用法的更多相关文章

  1. extjs grid renderer用法

    extjs grid renderer用法 摘自:http://www.cnblogs.com/ljian/archive/2011/10/27/2226959.html var cm = new E ...

  2. 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解

    Ext.Net通过DirectEvents进行服务器端异步的事件处理.[Ext.Net学习笔记]02:Ext.Net用法概览.Ext.Net MessageBus用法.Ext.Net布局 中已经简单的 ...

  3. extjs grid renderer用法【转载】

    今天在做项目时,需要在列表中的某列添加一个超链接,首先要取得当前选中行的数据,判断数据类型,然后链接到不同的页面,研究下.发现ExtJs提供了一个很强的方法如下: var cm = new Ext.g ...

  4. 转:Ext GridPanel根据条件显示复选框

    Ext GridPanel实现复选框选择框: var selectModel = new Ext.grid.CheckboxSelectionModel({ singleSelect : false ...

  5. 子查询。ANY三种用法。ALL两种用法。HAVING中使用子查询。SELECT中使用子查询。

    子查询存在的意义是解决多表查询带来的性能问题. 子查询返回单行多列: ANY三种用法: ALL两种用法: HAVING中的子查询返回单行单列: SELECT中使用子查询:(了解就好,避免使用这种方法! ...

  6. entrySet用法 以及遍历map的用法

    entrySet用法 以及遍历map的用法   keySet是键的集合,Set里面的类型即key的类型entrySet是 键-值 对的集合,Set里面的类型是Map.Entry   1.keySet( ...

  7. LOG4NET用法(个人比较喜欢的用法)

    LOG4NET用法(个人比较喜欢的用法) http://fanrsh.cnblogs.com/archive/2006/06/08/420546.html

  8. 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库

    7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库 三种方法 rpm工具----->类型windows下的exe程序 ...

  9. 72. js EXTJS grid renderer用法

    转自:https://blog.csdn.net/shancunxiaoyazhi/article/details/22156083 renderer : Function (可选的)该函数用于加工单 ...

随机推荐

  1. 用户管理 之 在Linux系统中,批量添加用户的操作流程

    一.阅读此文件您需要掌握的基础知识: <Linux 用户(user)和用户组(group)管理概述><用户(user)和用户组(group)配置文件详解><Linux 用 ...

  2. Github上的andoird开源组件整理

    http://blog.csdn.net/findsafety/article/details/50623627 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListVie ...

  3. win7搭建ios开发环境

    安装过程参考文章: http://jingyan.baidu.com/article/ff411625b9011212e48237b4.html http://www.loukit.com/threa ...

  4. android_audio

    参考   source.android.com/devices/audio.html

  5. [LeetCode] Range Sum Query - Immutable

    The idea is fairly straightforward: create an array accu that stores the accumulated sum fornums suc ...

  6. [Tip] 如何在BeyondCompare中忽略不重要的区别.

    在使用BeyondCompare时,有时需要忽略一些不重要的区别,下面的链接教你如何通过定义语法元素来实现这个功能. http://www.scootersoftware.com/support.ph ...

  7. system 函数

    相关函数:fork, execve, waitpid, popen 头文件:#include <stdlib.h> 定义函数:int system(const char * string) ...

  8. Linux下添加硬盘,分区,格式化详解

    2005-10-17 在我们添加硬盘前,首先要了解linux系统下对硬盘和分区的命名方法. 在Linux下对IDE的设备是以hd命名的,第一个ide设备是hda,第二个是hdb.依此类推 我们一般主板 ...

  9. efwplus框架介绍

    此框架得到博客园大神@张善友的关注,建议我写一篇此框架的最新介绍,好在@dotNet跨平台公众号上推荐给大家,得到大神的指示当然激动,马不停蹄的赶出此文,供大家参考!   一.使用efwplus框架的 ...

  10. EFW框架问题收集与答疑

    回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...