`
liss
  • 浏览: 842570 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Ext.widgets-grid(1)

阅读更多

Ext.grid.ColumnModel
用于定义Grid的列
用例
var colModel = new Ext.grid.ColumnModel([
    {header: "Ticker", width: 60, sortable: true},
    {header: "Company Name", width: 150, sortable: true}
    ]);


回到ColumnModel,它的构造参数是一个config组成的数组,其中config定义为{
    align : String    //css中的对齐方式
    dataIndex : String    //要绑定的Store之Record字段名
    fixed : Boolean    //如果为真列宽不能被改变
    header : String    //头部显示的名称
    hidden : Boolean    //隐藏本列
    id : String    //主要用于样式选择,如果已定义此属性,那么列所在的单元格会定义class为 x-grid-td-id
    renderer : Function    //可以使用这个构造参数格式化数据
    resizable : Boolean    //可调节尺寸
    sortable : Boolean    // 可排序
    width : Number    //宽度
}
另外虽然未经声明,但config事实上支持editor:Ext.form.Field属性,这点会在Ext.grid.EditorGridPanel中看到,另外为了扩展grid的表现,我们通常也需要自定义列,顺便提一个有趣的列,Ext.grid.RowNumberer,这是Ext为我们扩展好的一个简单列,它的构造很简单,也没有其它的方法和属性,Ext.grid.RowNumberer({ header : String, sortable : Boolean, width : Number})如果使用它,上例可改为
var colModel = new Ext.grid.ColumnModel([
    new Ext.grid.RowNumberer(),
    {header: "Ticker", width: 60, sortable: true},
    {header: "Company Name", width: 150, sortable: true}
    ]);
属性
defaultSortable : Boolean    //默认可排序
defaultWidth : Number    //默认的宽度
setConfig : Object    //返回构造时的config参数

方法
 ColumnModel( Object config )
 构造

getCellEditor( Number colIndex, Number rowIndex ) : Object
得到指定行列的编辑者
getColumnById( String id ) : Object
得到指定id的列对象
getColumnCount() : Number
得到列数
getColumnHeader( Number col ) : String
得到列头部文本
getColumnId( Number index ) : String
得到列id
getColumnTooltip( Number col ) : String
得到列提示
getColumnWidth( Number col ) : Number
列宽
getColumnsBy( Function fn, [Object scope] ) : Array
通过fn找到指定的列
getDataIndex( Number col ) : Number
得到指定列的数据绑定对象在store中的序号
getIndexById( String id ) : Number
通过id找序号
getRenderer( Number col ) : Function
得到绘制器
getTotalWidth( Boolean includeHidden ) : Number
总的宽度
hasListener( String eventName ) : Boolean
有事件侦听者?
isCellEditable( Number colIndex, Number rowIndex ) : Boolean
指定行列可编辑?
isFixed() : void
应该返回Boolean,充满?
isHidden( Number colIndex ) : Boolean
指定列隐藏?
isResizable() : Boolean
可重写义大小
isSortable( Number col ) : Boolean
可排序?
setColumnHeader( Number col, String header ) : void
设置指定列列头
setColumnTooltip( Number col, String tooltip ) : void
设置指定列提示
setColumnWidth( Number col, Number width ) : void
设置指定列宽度
setConfig( Array config ) : void
重设config
setDataIndex( Number col, Number dataIndex ) : void
设置指定列的数据源
setEditable( Number col, Boolean editable ) : void
设置指定列是否可编辑
setEditor( Number col, Object editor ) : void
为指定列设置编辑器
setHidden( Number colIndex, Boolean hidden ) : void
设置指定列隐藏
setRenderer( Number col, Function fn ) : void
为指定列设置输出方法


事件
columnmoved : ( ColumnModel this, Number oldIndex, Number newIndex )
configchanged : ( ColumnModel this )
headerchange : ( ColumnModel this, Number columnIndex, String newText )
hiddenchange : ( ColumnModel this, Number columnIndex, Boolean hidden )
widthchange : ( ColumnModel this, Number columnIndex, Number newWidth )


Ext.grid.PropertyColumnModel
继承自Ext.grid.ColumnModel,专为Ext.grid.PropertyGrid而设计,构造有点不同,不过这个api文档不知道谁写的,ext2中好象没有grid了,
PropertyColumnModel( Ext.grid.Grid grid, Object source )


Ext.grid.GridView
为GridPanel提供视图支持
config{
    autoFill : Boolean
    enableRowBody : Boolean
    forceFit : Boolean
}

属性
columnsText : String    //列文本
scrollOffset : Number    //滚动步行
sortAscText : String    //正序文本
sortClasses : Array    //正序和倒序时头部列使用的样式,默认为["sort-asc", "sort-desc"]
sortDescText : String    //倒序文本


方法
GridView( Object config )
构造
focusCell( Number row, Number col ) : void
指定第row行第col列得到焦点
focusRow( Number row ) : void
选中第row行
getCell( Number row, Number col ) : HtmlElement
得到指定行列的htmlelement对象
getHeaderCell( Number index ) : HtmlElement
得到指定列的表单头对象
getRow( Number index ) : HtmlElement
得到指定行的htmlelement对象
getRowClass( Record record, Number index, Object rowParams, Store ds ) : void
//得到指定行的样式?郁闷的是没有能在GridView.js中找到此方法的定义
refresh( [Boolean headersToo] ) : void
涮新显示
scrollToTop() : void
滚动到头部

Ext.grid.GroupingView
继承自Ext.grid.GridView,用于数据分组 ,应用于
config{
emptyGroupText : String        //空的分组显示文本
enableGroupingMenu : Boolean    //允许分组菜单
enableNoGroups : Boolean    //允许分组/不分组显示
groupTextTpl : String        //这是个模板,分组项的内容依此显示,语法参见模板,
hideGroupedColumn : Boolean    //隐藏分组列
startCollapsed : Boolean    //开始时收起,默认为假
}
另外虽然没有在api中说明,但groupByText和showGroupsText属性也是可以在config中指定的
方法
GroupingView( Object config )
构造
getGroupId( String value ) : void
取得指定值的分组id,为toggleGroup而准备的方法
toggleAllGroups( [Boolean expanded] ) : void
收起或展开所有的分组
toggleGroup( String groupId, [Boolean expanded] ) : void
展开或收起指定的分组,例grid.view.toggleGroup(grid.view.getGroupId('Horticulturalist'));会展开或收起分组字段值为'Horticulturalist'的分组




    Ext.onReady(function()...{
            //定义数组
        var arr=[ ['Bill', 'Gardener'], [ 'Ben', 'Horticulturalist'],['你', 'Gardener'],['他', 'Gardener'],[ '我', 'Horticulturalist'] ];
        var reader = new Ext.data.ArrayReader(
      
           ...{},
        //定义数组到record的映射关系
           [
            ...{name: 'name'},       
            ...{name: 'occupation', mapping: 1}  
           ]
        );
        //生成元数据
         var store=new Ext.data.Store(...{
                reader:reader
            });
        store.loadData(arr);
      
        //现在配置列信息  
        var col=new Ext.grid.ColumnModel([
            new Ext.grid.RowNumberer(...{header:'序号',width:30}),
            ...{header:'姓名',sortable: true,dataIndex:'name'},
            ...{header:'职业',sortable: true,dataIndex:'occupation'}
        ]);
      
        //配置视图信息
        var view=new Ext.grid.GridView(...{forceFit:true,sortAscText :'正序', sortDescText :'倒序'});
        view.columnsText='列显示/隐藏';

        //现在我们有一个可用的grid了,别骄傲这只是第一步      
        var grid=new Ext.grid.GridPanel(...{
            el:Ext.getBody(),
            height:200,
            width:400,
            store:store,
            cm:col,
            view:view
            });  
          
        grid.render();
      
      
            //现在我们需要一个GroupingStore
         var gstore=new Ext.data.GroupingStore(...{
          reader:reader,
          groupField:'name',
          groupOnSort:true,
          sortInfo:...{field: 'occupation', direction: "ASC"} //使用GroupingStore时必须指定sortInfo信息
       });
       gstore.loadData(arr);
     
             
        //扩展一下我们的grid,让他能分组当然会更酷一点   
        var ggrid = new Ext.grid.GridPanel(...{
            ds: gstore,
            cm:col,
            view: new Ext.grid.GroupingView(...{
                forceFit:true,
                sortAscText :'正序',
                sortDescText :'倒序',
                columnsText:'列显示/隐藏',
                groupByText:'依本列分组',
                showGroupsText:'分组显示',
                groupTextTpl: '{text} ({[values.rs.length]} 条记录)'
            }),
            frame:true,
            width: 400,
            height: 300,
            collapsible: true,
            animCollapse: false,
            renderTo:Ext.getBody()
       });  
      
      
        });

分享到:
评论

相关推荐

    EXT-js-中文手册

    - **数据展示**:Grid组件是EXT中用于展示表格数据的重要组件,支持复杂的数据展示和操作。 - **分页功能**:详细介绍了如何在Grid中实现数据分页,提升用户体验。 #### 15. Menu组件 - **创建菜单**:Menu组件用于...

    extjs学习资源

    - **组件库**: `Ext.widgets`包含了大量预定义的UI组件,如按钮、表单元素、菜单和工具栏等。 - **按钮**: `Button`、`SplitButton`和`CycleButton`等提供了丰富的按钮样式和功能。 - **表单**: `form`组件提供了...

    Extjs的学习资料

    7. **EXT核心API详解Ext.widgets(十八)-grid(1)**: 可能详细阐述了Grid组件的各种高级用法,如行编辑、行选择模式、拖放排序等。 通过上述资料,你可以系统地学习ExtJS的基本概念、核心API以及实际开发中的应用...

    ext教程1.pdf

    - **表单及元素组件**:`Ext.Editor`(编辑器)、`Ext.grid.EditorGridPanel`(可编辑的表格)等。 EXTJS 的强大之处在于它提供了丰富的组件库和灵活的布局机制,使得开发者可以轻松构建复杂的应用程序界面,同时...

    extjs核心api详解

    Ext1部分介绍了extjs的基础知识,包括如何初始化和配置extjs环境,以及一些基本的编程模式和最佳实践。这部分内容对于初学者来说至关重要,因为它奠定了学习更复杂api的基础。 二、Array/Date/Function/Number/...

    Ext学习文档(介绍 Core Util DD Widgets并有例子)

    1. **Ext Core**:这是Ext的基础部分,提供了基本的DOM操作、事件处理、类系统、动画效果等核心功能。它是整个Ext框架的基石,使得开发者能够以面向对象的方式处理JavaScript代码,提高代码的可维护性和可复用性。...

    doc格式 ext EXT 中文手册

    - **Widgets**: Ext提供了一系列预构建的UI控件,如按钮、网格等,大大提高了开发效率。 - **示例组件**: - **MessageBox**: 显示对话框或警告信息。 - **Grid**: 创建数据表格。 - **更多组件**: 还有更多的UI...

    ext 编程开发指南

    renderTo: 'grid-example' }); ``` ##### 还有更多的.. 除了以上提到的MessageBox和Grid之外,EXT还提供了大量的其他组件,如Form、TabPanel、Tree等,满足多样化的用户界面需求。 #### 使用Ajax Ajax是现代Web...

    Ext2.2 中文手册

    - **使用 Widgets**:Ext 提供了多种预定义的 UI 组件(Widgets),如 MessageBox、Grid 等。 - **使用 Ajax**:通过 `Ext.Ajax.request` 方法发起 Ajax 请求,并处理服务器端返回的数据。 #### 3. EXT 源码概述 ...

    Ext框架简介.ppt

    1. 表格(Grid):用于展示和编辑表格数据,支持分页、排序、过滤等功能。 2. 窗口(Window):弹出式对话框,可以包含任意组件。 3. 面板(Panel):可包含多个组件的容器,通常作为应用的基本布局单元。 4. 表单...

    ExtJS 3.2的中文参考手册

    - **分页栏 (Toolbar)**: 可以通过配置Grid的底部工具栏来实现分页功能,例如:`grid.bbar = new Ext.PagingToolbar({ store: store, displayInfo: true, displayMsg: '显示 {0} - {1} 条记录,共 {2} 条记录', ...

    Ext JS in Action, 2nd Edition

    Ext JS is a mature JavaScript web application framework that provides modern UI widgets and an advanced MVC architecture. It helps you manage tedious boilerplate and minimize hand-coded ...

    ext学习文档

    - **使用Widgets**: 介绍了EXT提供的各种小部件,如MessageBox、Grid等。 - **使用Ajax**: 指导如何使用EXT进行Ajax调用,包括与不同服务器端技术的集成。 - **EXT源码概述**: 对EXT的源代码进行了初步解析。 - **...

    ext-word文档

    extend: 'Ext.grid.Panel', ... }); ``` #### EXT的布局(Layout) 布局是ExtJS中用于管理UI组件排列的关键特性。ExtJS提供了多种布局策略,如`fit`、`vbox`、`hbox`等,可以根据需要选择合适的布局策略。 #### ...

    EXT中文手册 Grid Form

    ### EXT中文手册 Grid Form #### EXT简介 EXT是一款强大的JavaScript框架,主要用于开发Web应用程序的前端界面。它提供了丰富的用户界面组件、数据管理功能以及与服务器端进行交互的能力。本手册旨在帮助开发者...

Global site tag (gtag.js) - Google Analytics