当前位置: 首页 > news >正文

ExtJS 4中自定义Grid列标题的对齐方式

        从ExtJS 2.0到目前的4.0,Grid的列标题对齐方式都是和数据的对齐方式一致的,这不太符合中国人的习惯。解决办法是,自己重写一下Ext.grid.column.Column对象中渲染列标题的对齐方式的代码。代码只有一句,在afterRender方法中,因而重写afterRender方法就行了,具体做法如下。

       首先在本地化文件中添加以下代码:

      

if(Ext.grid.Column){
	Ext.grid.Column.override({
		//要重写的方法
	});
}


      这里要注意,不要使用习惯的Ext.apply来重写,因为在afterRender方法中要调用callParent方法调用父类的afterRender方法,而这需要用到方法内的”$owner“和”$name“属性,使用apply方法,会丢失这两个属性,导致调用callParent方法失败,因而必须使用override方法重写,这样才可以保留这两个属性。


      接着将afterRender方法的定义代码全部复制到注释中的位置(注意将最后的逗号去掉),然后修改下面代码:


el.addCls(Ext.baseCSSPrefix + 'column-header-align-' + me.align).addClsOnOver(me.overCls);

     

      这句代码是为列标题添加对齐的样式的,其默认是使用配置项align的值的,因而我们只要添加一个配置项,然后使用该配置项就行了,修改代码如下:

me.titleAlign = me.titleAlign || me.align;

el.addCls(Ext.baseCSSPrefix + 'column-header-align-' + me.titleAlign).addClsOnOver(me.overCls);



       代码中添加了一个titleAlign的配置项,如果定义了该配置项,则使用该配置项的值,否则使用align的值,注意一定要修改粗体代码,不然添加的titleAlign就是多余的。

       这样,就可以在列的配置对象中添加titleAlign配置项来设置列标题的对齐方式了。


       最终在本地化文件加入的代码如下:

if(Ext.grid.Column){
	Ext.grid.Column.override({
		//要重写的方法
	    afterRender: function() {
	        var me = this,
	            el = me.el;
	        me.callParent(arguments);
	
	        me.titleAlign = me.titleAlign || me.align;
	        el.addCls(Ext.baseCSSPrefix + 'column-header-align-' + me.titleAlign).addClsOnOver(me.overCls);
	
	        me.mon(el, {
	            click:     me.onElClick,
	            dblclick:  me.onElDblClick,
	            scope:     me
	        });
	        if (!Ext.isIE8 || !Ext.isStrict) {
	            me.mon(me.getFocusEl(), {
	                focus: me.onTitleMouseOver,
	                blur: me.onTitleMouseOut,
	                scope: me
	            });
	        }
	
	        me.mon(me.titleContainer, {
	            mouseenter:  me.onTitleMouseOver,
	            mouseleave:  me.onTitleMouseOut,
	            scope:      me
	        });
	
	        me.keyNav = Ext.create('Ext.util.KeyNav', el, {
	            enter: me.onEnterKey,
	            down: me.onDownKey,
	            scope: me
	        });
	    }
	});
}

      粗体代码是修改过的代码。


      示例代码:

     

var store=Ext.create("Ext.data.ArrayStore",{
	fields:["id","name"],
	data:[["1","张三"],["2","李四"]]
});

Ext.create("Ext.grid.Panel",{
	renderTo:Ext.getBody(),
	store:store,	
	columns:[
		{text:"编号",dataIndex:"id",flex:1,titleAlign:"center"},
		{text:"姓名",dataIndex:"name",flex:1}
	]
})

示例结果:

第一列定义了titleAlign为center,因而列标题会居中对齐。

      

转载于:https://www.cnblogs.com/muyuge/archive/2011/07/08/6333791.html

相关文章:

  • MEF程序设计指南二:Silverlight中使用CompositionInitializer宿主MEF
  • abstract virtual interface区别
  • OpenGL教程之Alpha混合
  • 模式识别与机器学习读书笔记——2.1 Binary Variables
  • 【转】【翻译】Orx官方教程:0.基础(Basic)
  • ASP.NET——/应用程序中的服务器错误
  • 【转】【翻译】Orx官方教程:1. object
  • WEB上传文件的插件uploadify
  • 读书笔记,深入理解linux内核第三版
  • OGC标准介绍 2
  • Android游戏开发之游戏帧动画的播放与处理(七)
  • OGC标准介绍 3
  • [我研究]7月第三周
  • 查看服务器实例的属性信息函数--SERVERPROPERTY
  • 10w级别的mysql数据插入
  • Android组件 - 收藏集 - 掘金
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Java超时控制的实现
  • java概述
  • leetcode讲解--894. All Possible Full Binary Trees
  • Linux各目录及每个目录的详细介绍
  • PHP 小技巧
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 爬虫模拟登陆 SegmentFault
  • 嵌入式文件系统
  • 如何选择开源的机器学习框架?
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (四) Graphivz 颜色选择
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)winform之ListView
  • .gitignore文件—git忽略文件
  • .NET 8.0 中有哪些新的变化?
  • .Net Core与存储过程(一)
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .Net转前端开发-启航篇,如何定制博客园主题
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • /etc/skel 目录作用
  • ::什么意思
  • @Valid和@NotNull字段校验使用
  • [2016.7 day.5] T2
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [C#] 如何调用Python脚本程序
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • [C语言]——C语言常见概念(1)
  • [dts]Device Tree机制
  • [ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: ‘tenant_name‘
  • [Golang]K-V存储引擎的学习 从零实现 (RoseDB mini版本)
  • [HNOI2010]BUS 公交线路
  • [leetcode] Longest Palindromic Substring
  • [nlp] grad norm先降后升再降
  • [NOI 2016]循环之美