`
kidiaoer
  • 浏览: 822412 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Ext 总结

阅读更多
ExtJs总结(一)
关键字: extjs---grid
问题:使用Grid时,如果出现列标题与复选框错位

使用定义样式

.ext-ie7 .x-menu-item-icon,
.ext-ie6 .x-menu-item-icon {left: -24px;}
.ext-ie8 .x-menu-item-icon,
.ext-ie7 .x-menu-item-icon,
.ext-ie6 .x-menu-item-icon {left: -24px;}
解决





使用grid的遮罩提示时,一定要设表格的height和width。


enableColumnMove和enableColumnResize为false表示禁用拖放列和改变列宽度功能。
默认情况下一次可以选一行或多行。



stripeRows:true显示为斑马线。


问题:自主决定每列的宽度
1.手动指定
cm(columnmudule)支持给每列设置宽度,如果不指定则默认的宽度为100px.

var cm=new Ext.grid.columnModel({
{header:'列头',dataIndex:'数据源索',width:宽度},....});



2.自动填充
var gird=new Ext.grid.GridPanel({
renderTo:'grid',
store:store,
cm:cm,
viewConfig:{forceFit:true}});

会按照设置的宽度之间的比例进行显示,而不是按照设置的宽度。



3.指定自动填充剩余空间的列
也可以指定一列来完成该操作,但该操作要求该列必须定义时指定id值。
var cm=new Ext.grid.columnModel({
{header:'列头',dataIndex:'数据源索',width:宽度,id:'id标识属性'},....});

接下来设定
Ext.grid.GridPanel({
renderTo:'grid',
store:store,
cm:cm,
autoExpandColumn:'id列标识'});


问题:让列支持排序
在建立列模型时指定storable:true



问题:中文排序
1.为Ext.data.Store设置一个storeInfo:{field:'列名',direction:'ASC|DESC'}属性。


2.重写Ext.data.Store的applySort函数
Ext.data.Store.prototype.applySort = function() {
    if (this.sortInfo && !this.remoteSort) {
        var s = this.sortInfo, f = s.field;
        var st = this.fields.get(f).sortType;
        var fn = function(r1, r2) {
            var v1 = st(r1.data[f]), v2 = st(r2.data[f]);
            if (typeof(v1) == "string") {
                return v1.localeCompare(v2);
            }
            return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0);
        };
        this.data.sort(s.direction, fn);
        if(this.snapshot && this.snapshot != this.data) {
            this.snapshot.sort(s.direction, fn);
        }
    }
};

该函数可以加在ext-all.js文件的未尾。或者放在html页面的最上面,保证在EXT初始化之后,实际代码调用之前执行。



问题:显示日期类型数据列
1.在store的reader属性中增加type和dataFormat两个属性
{name: 'date',type:'date',dateFormat:'Y-j-n H:i:s'}
注意格式化字符串必须要与实际日期的内容相对应。
如日期为2009-5-2 12:30:58 则格式化字符串为'Y-j-n H:i:s'
如日期为2009-05-02 12:30:58 则格式化字符串为'Y-m-d H:i:s'
详细字符串的含义见ext api doc之Date类
以保证能够读取到正确的日期值。



2.在ColumnModel中新加配置
{header: '日期',dataIndex: 'date',type:'date',renderer:Ext.util.Format.dateRenderer('Y年j月n日')}
其中renderer的格式字符串表示显示的格式是什么。



问题:如何在单元格时显示红色的字或图片,按钮等
在ColumnModule的相应列的属性中添加renderer:渲染函数
如:
var cm=new Ext.grid.ColumnModel([
{head:'列头',dataIndex:'数据源索',renderer:渲染函数}]);
渲染函数:
function 函数名(value){
if(value==值){
  return html+css代码;
}
else
{
  return 其它的html+css;
}


}



问题:如何设置表格的表头右键提示为汉字内容

Ext.grid.GridPanel可以看作控制器,Ext.data.Store可以看作模型,Ext.grid.GridView可以看作视图.在构建Ext.grid.GridPanel实例时添加viewConfig属性
var gid=new Ext.grid.GridPanel(
{renderTo:'grid',
  store:store,
  cm:cm,
  viewConfig:{
  columnsText:'显示的列',
  scrollOffset:30,
  sortAscText:'升序',
  sortDescText:'降序'
  //forceFit:true
}
});



问题:用grid实现分页显示
1.为Grid添加分页工具条
在GridPanel中进行设置

                                var grid = new Ext.grid.GridPanel({
                                    renderTo: 'grid',
                                    autoHeight: true,
                                    store: store,
                                    cm: cm,
                                    bbar: new Ext.PagingToolbar({
                                        pageSize:3,
                                        store: store,
                                        displayInfo: true,
                                        displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
                                        emptyMsg: "没有记录"
                                    })
                                });
                                store.load();

在使用分页工具条之后,store.load()必须发生在构造GridPanel之后.而且数据源不能使用Ext.data.SimpleStore.Grid每次都会显示数据源中所有的数据.因此数据一定要先在后台分好.





如果要在Grid的头部显示分页工具条,可以将bbar改为tbar。



2.后台分页

后台jsp的做法:



①取得开始页号与页大小

String start = request.getParameter("start");
String limit = request.getParameter("limit");



②访问数据库取得数据



③将数据输出为json字符串

格式为:{totalProperty:总记录数,root:[{.....},{.....},....]),其中root数组存放当前页的数据.



前台页面的做法:

①修改Store

var store = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({url:jsp的url'}),
        reader: new Ext.data.JsonReader({
            totalProperty: 'totalProperty',
            root: 'root'
        }, [
            {name: 'id'},
            {name: 'name'},
            {name: 'descn'}
        ])
    });

②向服务器传参

store.load({params:{start:0,limit:10}});

Grid每次都会显示全部在root中的数据,而不论totalProperty的值是多少,所以分页时root数组中的数据由后台jsp控制。





3.前台分页
EXT中的Grid是把得到的数据一次性显示在表格里,并没有直接为我们提供内存分页的功能,但是在Ext的examples/locale/PapingMemoryProxy.js,它可以从本地数据读取数据同,并实现内存分页。
步骤如下:
①将PagingMemoryProxy.js导入html
②把以前的MemroryProxy换成PagingMemoryProxy
③调用store.load({params:{start:0,limit:3}});显示最开始的3条记录。



4.后台排序

在默认的情况下,Grid只能对当前页的数据进行排序,如果对所有的数据排序,则需要将排序信息提交到后台,由后台将信息组装到SQL里,然后再由后台将处理好的数据返回给前台。
    var store = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({url:'09_01.jsp'}),
        reader: new Ext.data.JsonReader({
            totalProperty: 'totalProperty',
            root: 'root'
        }, [
            {name: 'id'},
            {name: 'name'},
            {name: 'descn'}
        ]),
        remoteSort: true
    });
其中remoteSort: true表示允许后台排序,这样在排序时就会有变化,不会立即显示出排序的结果,而是向后台提交两个参数,分别是sort和dir,表示要排序的字段与升序或降序。

jsp则进行相应的处理
String start = request.getParameter("start");
String limit = request.getParameter("limit");

String sort = request.getParameter("sort");
String dir = request.getParameter("dir");
再进行数据库分页,并返回json格式的分页数据。
分享到:
评论

相关推荐

    Ext常用属性总结

    本文将深入探讨"Ext常用属性总结"这一主题,帮助开发者更好地理解和利用ExtJS的特性。 首先,让我们了解几个基本的ExtJS概念。`Ext.Component`是所有UI组件的基础类,它拥有众多属性来控制组件的行为、外观和交互。...

    Ext常用属性总结.doc

    ### Ext常用属性总结 在开发基于Ext JS框架的应用程序时,了解并熟练掌握其核心组件的属性是非常重要的。本文将详细介绍Ext JS中常用的属性及其应用场景,帮助开发者更好地编写高效、可维护的代码。 #### 一、Ext ...

    Ext2.02的一些总结

    标题 "Ext2.02的一些总结" 暗示了我们即将探讨的是关于Ext JS库的一个特定版本,即2.02,这是一个广泛使用的JavaScript框架,用于构建富客户端Web应用程序。Ext JS提供了丰富的用户界面组件和强大的数据管理功能。在...

    Windows读取Ext4分区的工具 Ext2Read

    总结来说,Ext2Read是一个实用的工具,帮助Windows用户方便地访问和提取Linux EXT分区的数据,扩展了跨平台操作的可能性。不过,在使用过程中,用户应当遵循相应的安全规范,避免对数据造成不必要的损害。

    Ext性能优化总结

    ### Ext性能优化总结 在多年的Ext项目开发过程中,积累了丰富的经验与技巧,下面将这些关键的知识点进行详细的阐述,希望能为同行提供有价值的参考。 #### 一、架构优化:One Page One Application模式 在传统的...

    Ext 学习总结 pdf版

    ### Ext JS 学习总结与理解 #### 一、Ext JS 结构树 在文档的开始部分提到了“Ext JS 结构树”,这部分内容虽然没有给出具体的细节,但我们可以推测这是关于Ext JS框架的整体架构介绍。Ext JS是一个用于构建交互式...

    Ext常用功能开发总结

    `Ext.window.Dialog`或`Ext.MessageBox`提供弹出式对话框,用于信息提示、确认操作、输入等。 ### 弹出窗口的使用 `Ext.window.Window`创建自定义窗口,包含任意组件,可自由配置大小、位置和关闭按钮。 ### 可...

    Ext4.0学习总结及功能详解

    Ext4.0学习总结及功能详解。描述ext各种控件用法,布局等。

    ext4_utils

    总结,ext4_utils是Linux系统管理员和Android开发者的重要工具,它为处理ext4文件系统提供了强大的功能。在三星线刷ROM的制作过程中,ext4_utils确保了文件系统的创建、调整和维护,从而保证了系统的稳定性和高效性...

    ext学习总结.rar

    ext学习总结 这对初学者很有帮助

    Ext2IFS windows

    总结,Ext2IFS是一个实用的工具,帮助Windows用户无缝地与Linux的ext文件系统交互,无论是为了数据共享还是故障排查,都是一个值得拥有的工具。正确使用并注意数据安全,能极大地提高跨平台工作的效率。

    Ext js 学习总结

    个人总结对Ext js 的学习总结,希望对各位朋友有所帮助

    ext 技术总结

    ext 技术总结

    EXT2.0,EXT4.0,JS

    总结来说,EXT2.0和EXT4.0是Linux系统中的两种文件系统,JavaScript是一种关键的Web编程语言,EXT JS是一个基于JavaScript的前端开发框架。这些技术相互配合,共同构成了现代计算机系统和网络应用的基础。通过学习和...

    ext.net 1.x DEMO

    总结来说,EXT.NET 1.x 提供了一个强大的开发环境,使开发者能够快速构建功能丰富的Web应用。在给定的DEMO中,我们看到了如何利用EXT.NET实现基本的数据操作和拖放功能,这对于物流公司的管理应用是非常实用的。通过...

    Ext4.0学习总结及功能详解(特别详细)

    【Ext4.0学习总结及功能详解】 Ext4.0是Ext JS框架的一个重要版本,它带来了许多增强和新特性,使得开发复杂的Web应用程序变得更加高效和便捷。在本篇文章中,我们将深入探讨两种布局方式——accordion布局和border...

    不错的ext日志管理系统

    总结来说,EXT日志管理系统是IT运维中的重要工具,它能够有效地管理和分析日志数据,提高故障排查效率,保障系统的稳定运行,同时也为企业提供了一种有效监控和审计的方法。对于任何依赖日志数据进行决策或故障排除...

    Ext.Store的获取方法

    总结来说,在Ext.js中,获取`Ext.Store`应使用`Ext.getStore`方法,而不是`Ext.getCmp`,因为Store是通过`storeId`在内存中注册和管理的,而不是作为页面上的一个可视组件。同时,Store的设计方式有助于数据的安全性...

    基于EXT2.0.2表格间数据拖拽

    总结来说,EXT2.0.2的表格间数据拖拽涉及到EXT Grid、DataStore、DragDrop和DropTarget的使用,通过这些组件和接口的组合,开发者可以创建出高度交互、功能丰富的Web应用。实现这一功能需要对EXT的API有深入的理解,...

Global site tag (gtag.js) - Google Analytics