- 浏览: 471295 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (190)
- ExtJS (40)
- JavaScript (16)
- Java设计模式 (13)
- Html (10)
- Tomcat (9)
- myeclipse (5)
- JSP (5)
- CSS (10)
- JS/CSS (1)
- windows (12)
- Navicat For MySQL (1)
- struts2 (6)
- Spring2.0 (1)
- Java反射机制 (5)
- hibernate (9)
- java (17)
- B/SWeb完美打印方案 (1)
- 数据库相关 (4)
- java web报表 (1)
- 报表打印 (2)
- java泛型 (1)
- Servlet (2)
- SVN (7)
- Log4j (0)
- android (3)
最新评论
-
kation733:
斯蒂芬斯蒂芬多萨法阿凡达是否阿萨德
同时开启两个Tomcat -
BlueBing:
一路的夏天 写道楼主的代码会报错吧!在前面的时候String ...
使用Java反射机制遍历实体类的属性和类型 -
ying890:
非常感谢!
Ext JS中文乱码解决方案 -
zhylandroid:
谢谢了,对我很有帮助
DatabaseMetaData开发实务(上) -
wendy.wujing:
maxHttpHeaderSize="8192&qu ...
查看Tomcat配置的端口
有时候,需要在Grid中显示一个链接,或根据数字的大小显示不同的颜色,又或者使用固定格式显示记录编号等,这就需要自定义单元格的显示格式。在Ext的Grid可以很容易的实现自定义单元格的显示格式。在定义Grid的ColumnModel的时候,在需要自定义显示格式的列中加入参数renderer,该参数指向一个函数,在显示时会以函数返回的数据作为显示数据,例如最简单的就是定义日期的显示格式:
- {header: "创建时间", width: 85, sortable: true, renderer: Ext.util.Format.dateRenderer('Y-m-d'), dataIndex: 'createtime'}
参数renderer指向的是一个函数,在函数中传入该单元格的值,函数执行后返回要显示的数据。
下面通过例子来演示一下常用的自定义格式:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <html debug='true'>
- <head>
- <title>自定义单元格的显示格式</title>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <link rel="stylesheet" type="text/css" href="../lib/ext/resources/css/ext-all.css" />
- <script type="text/javascript" src="../lib/ext/ext-base.js"></script>
- <script type="text/javascript" src="../lib/ext/ext-all.js"></script>
- <script type="text/javascript" src="../lib/ext/locale/ext-lang-zh_CN.js"></script>
- <style>
- </style>
- </head>
- <body>
- <h1 style="margin:20px 0px 0px 20px;">第4章 自定义单元格的显示格式</h1>
- <br />
- <div style="padding-left:20px;">
- <p>
- <div id="panel1"></div><br>
- <div >事件:</div>
- <textarea id='op' rows="10" style="width:800px;"></textarea>
- </p>
- <br />
- </div>
- <script>
- var app={};
- Ext.onReady(function(){
- Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
- Ext.QuickTips.init();
- Ext.Msg.minWidth=300;
- var myData = [
- [1,{text:'Ext',url:'http://extjs.com'},-10.00,'2008-01-01 12:01:01','br.gif','Atlantic Spadefish.jpg',{text:'一',tips:'提示1'}],
- [2,{text:'Google',url:'http://www.google.cn'},1.00,'2008-02-16 12:01:02','fr.gif','Bat Ray.jpg',{text:'二',tips:'提示2'}],
- [3,{text:'新浪',url:'http://www.sina.com.cn'},0,'2008-03-15 12:01:03','cu.gif','Blue Angelfish.jpg',{text:'三',tips:'提示3'}],
- [4,{text:'雅虎',url:'http://www.yahoo.com.cn'},10.01,'2008-04-14 12:01:04','es.gif','Bluehead Wrasse.jpg',{text:'四',tips:'提示4'}],
- [5,{text:'CSDN',url:'http://www.csdn.net'},200.90,'2008-05-13 12:01:05','cn.gif','Cabezon.jpg',{text:'五',tips:'提示5'}],
- [6,{text:'微软',url:'http://www.microsoft.com'},-200.01,'2008-06-12 12:01:06','us.gif','California Moray.jpg',{text:'六',tips:'提示6'}]
- ];
- var store = new Ext.data.SimpleStore({
- fields: [
- {name: 'id',type:'int'},
- {name: 'linker'},
- {name: 'number', type: 'float'},
- {name: 'datetime', type: 'date', dateFormat: 'Y-m-d H:i:s'},
- {name: 'icon'},
- {name: 'qtips'},
- {name: 'tips'}
- ]
- });
- store.loadData(myData);
- function leftPad(val){
- return String.leftPad(val,5,"0");
- }
- function linker(val){
- if(typeof val=='object'){
- return '<a style="display:table;width:100%;" title="'+val.url+'" target="_blank" href="'+val.url+'">'+val.text+'</a>'
- }
- return val;
- }
- function num(val){
- if(val > 0){
- return '<span style="color:green;">' + val + '</span>';
- }else if(val < 0){
- return '<span style="color:red;">' + val + '</span>';
- }
- return val;
- }
- function icon(val){
- return '<img src="./images/gif/'+val+'">'
- }
- function qtips(val){
- return '<span style="display:table;width:100%;" qtip=\'<img src="images/'+val+'">\'>'+val+'</span>'
- }
- function tips(val){
- if(typeof val=='object'){
- return '<span style="display:table;width:100%;" title="'+val.tips+'">'+val.text+'</span>'
- }
- return val
- }
- var grid = new Ext.grid.GridPanel({
- height:350,
- width:800,
- store: store,
- title:'自定义单元格的显示格式',
- frame:true,
- columns: [
- {header:'编号',width:80, sortable: true,renderer:leftPad, dataIndex:'id'},
- {header: "链接", width:75, sortable: true, renderer: linker, dataIndex: 'linker'},
- {header: "数字", width:75, sortable: true,renderer: num, dataIndex: 'number'},
- {header: "时间", width:85, sortable: true, renderer: Ext.util.Format.dateRenderer('Y-m-d'), dataIndex: 'datetime'},
- {header: "图标", width:75, sortable: true,renderer: icon, dataIndex: 'icon'},
- {header: "图片提示", width:75, sortable: true,renderer: qtips, dataIndex: 'qtips'},
- {header: "文字提示", width:75, sortable: true,renderer: tips, dataIndex: 'tips'}
- ],
- stripeRows: true,
- autoExpandColumn: 5,
- listeners:{
- rowclick:function(trid,rowIndex,e){
- Ext.get('op').dom.value+='------------------------\n'+
- Ext.encode(store.getAt(rowIndex).data)+'\n';
- }
- }
- });
- grid.render('panel1');
- Ext.get('op').dom.value="";
- })
- </script>
- </body>
- </html>
例子的运行结果如下图。
例子中,第1列演示了以固定长度为5位,不足5位以0补齐的格式的数字:
function leftPad(val){
return String.leftPad(val,5,"0");
}
该函数使用Ext字符串leftPad方法补0,然后将转换后的值返回。
第2列演示了如何在单元格中显示链接:
function linker(val){
if(typeof val=='object'){
return '<a style="display:table;width:100%;" title="'+val.url+'" target="_blank" href="'+val.url+'">'+val.text+'</a>'
}
return val;
}
第2列的数据使用了JSON格式的数据,如“{text:'Ext',url:'http://extjs.com'}”,标签text内的值是单元格显示的数据,而标签url的值是链接地址。在函数中先判断原始值是否为对象,如果是则使用text和url组合一个HTML标记并返回。在HTML标记中定义了两个样式,其目的是让HTML标记显示时能填满单元格,这样当鼠标移动到该单元格空白处时,也能显示提示信息。提示信息由HTML标记的title属性实现。
第3列则演示了根据数值的大小使用不同颜色作为显示文字的颜色,该单元格中负数显示为红色,0为黑色,正数为绿色:
function num(val){
if(val > 0){
return '<span style="color:green;">' + val + '</span>';
}else if(val < 0){
return '<span style="color:red;">' + val + '</span>';
}
return val;
}
函数中控制颜色的显示是通过HTML标记SPAN的样式实现的。
第4列很简单,使用了Ext的日期格式函数控制日期的显示格式。在这里要特别注意的是日期的值格式与store字段中定义的格式一定要相同,不然Grid会显示为空白值。例如例子中的日期值为“2008-01-01 12:01:01”,则定义日期的格式必须为“Y-m-d H:i:s”。
第5列演示了如何在单元格中显示小图片:
function icon(val){
return '<img src="./images/gif/'+val+'">'
}
函数将包含图片文件名的原始值转换为HTML标记IMG,就可实现在单元格内显示图片了。
第6列演示了通过Ext的QuickTip显示图片提示:
function qtips(val){
return '<span style="display:table;width:100%;" qtip=\'<img src="images/'+val+'">\'>'+val+'</span>'
}
要在HTML标记中使用QuickTip显示提示,只要在标记中加入一个属性qtip就行了。在函数中可以看到将一个IMG标记作为了qtip的显示内容。不过,别忘了在OnReady函数中对QuickTip进行初始化。标记SPAN也定义了两个样式,其作用与第2列的一样。该列的提示显示结果请看如下图。
第7列使用了HTML标记的title属性来显示提示,与第2列的方法是一样的,只是该列使用了SPAN标记。
本节只是简单的演示了几种自定义显示格式的单元格,只要灵活使用HTML标记,还可以实现更多的自定义格式
发表评论
-
功能: 用户点击grid的表头菜单显示/隐藏列,拉动列、重新刷新页面后保留。
2011-01-05 11:56 2362var grid = new Ext.grid.GridPa ... -
fieldSet组件的基本用法 将fieldSet上的边框去掉或者改变内边距
2010-05-29 09:58 10541先把fieldSet简单的回忆下: fieldset:对表单进 ... -
ext grid 没有数据时不显示横向滚动条的解决办法
2010-05-28 14:18 2662EXT Grid 没有数据时不显示横向滚动条的解决办法: t ... -
ExtJS中动态设置TextField的readOnly属性
2010-04-28 14:49 2418假设 textField, 它的 id = 'textFiel ... -
Ext监控回车按键
2010-03-06 11:25 2394listeners : {specialkey : funct ... -
Ext.Ajax类
2010-03-05 10:35 1919Ext.Ajax类Ext.Ajax类是一个简单而清晰的XHR封 ... -
Ext JS 键映射:键盘作为第一类操作对象
2010-02-26 15:07 2289Ext.KeyMap Ext提供几个不同的组件,支持键盘导航, ... -
如何在服务器端 读取Ext.ux.UploadDialog上传的文件?
2009-12-10 17:09 2223问题已经解决。 1。要导入 commons.io.jar包 ... -
ext 多文件上传控件 Ext.ux.UploadDialog 使用中的问题
2009-12-10 17:03 3323Ext.ux.UploadDialog 像ext一 ... -
Ext.data专题五:常用proxy之MemoryProxy
2009-08-26 14:44 3951MemoryProxy只能从JavaScript对象获得数据, ... -
Ext.data专题四:Ext.data.Store
2009-08-26 14:42 2821Ext.data.Store是EXT中用来进行数据交换和数据交 ... -
Ext.data专题三:Ext.data.Record
2009-08-26 14:40 5340Ext.data.Record就是一个设 ... -
Ext.data专题二:Ext.data.Connection
2009-08-26 14:38 1431Ext.data.Connection是对Ext.li ... -
Ext.data专题一:Ext.data简介
2009-08-26 14:36 1279Ext.data在命名空间中定义了一系列store、reade ... -
深入浅出Ext JS:数据存储与传输
2009-07-11 15:40 247910.4 Ext.data.Store Ex ... -
EXT核心API详解(十一)_Ext.data.Store/GroupingStore/JsonStore/SimpleStore
2009-07-03 17:17 5647Ext.data.Storestore是一个为 ... -
ext afteredit详解
2009-07-02 09:48 2410grid.on("afteredit",a ... -
Ext.form.ComboBox 属性详解及使用方法介绍和级联使用
2009-06-27 16:18 2451Ext.form.ComboBox 属性详解(见注释)及使用方 ... -
ext_comboBox二级级联下拉框
2009-06-27 16:11 1807Ext.onReady(function(){ ... -
ExtJS 给textfield赋值的方法总结
2009-06-25 15:21 3321var value="值"; (1) f ...
相关推荐
在EXT GridPanel中,获取某一单元格的值是常见的操作,特别是在实现自定义事件处理或数据验证时。 在提供的代码段中,我们看到一个监听`cellclick`事件的例子,这是EXT GridPanel中用于捕获用户点击单元格时的事件...
根据提供的文件信息,我们可以深入探讨如何在 Ext JS 中实现 Grid 的单元格合并功能。此案例主要涉及到了自定义 GridView 的 `renderHeaders` 方法来达到单元格合并的目的,并且还涉及了模板(Template)的使用、...
目的:该示例非常详细注释说明Ext的面向对象的编程方式,使用继承,然后重写父类的方法,以及注册自定义事件说明Ext框架是事件驱动的框架编程。 阅读对象:本中心学习Ext面向对象编程的人员 阅读条件:掌握OO的思路...
EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战
总的来说,“ext4合并单元格”这个概念虽然在标准的文件系统操作中不常见,但通过自定义编程和文件组织,可以在特定应用中实现类似的功能。要完全理解这个功能,需要进一步研究提供的代码和文档,以便了解其内部工作...
<ext:PagingToolbar ID="PagingToolbar1" runat="server" DisplayMsg="显示 {0} - {1} of {2}" PageSizeOptions="5,10,25,50" /> </ext:GridPanel> ``` 这里,`PagingToolbar`组件用于在GridPanel下方显示分页...
在Ext JS这个强大的JavaScript框架中,"Ext 合并单元格"是一个常见的需求,尤其是在创建数据密集型的表格展示时,比如报告或者统计表。它允许开发者将多个相邻的单元格合并成一个大单元格,使得数据显示更加清晰,...
在本文中,我们将深入探讨如何使用Sencha Touch框架自定义目录结构来创建你的第一个应用程序。Sencha Touch是一款强大的JavaScript框架,专为构建移动Web应用程序而设计。它提供了丰富的UI组件和数据管理工具,使得...
接着,详细讲解了Ext GWT的组件模型,包括各种控件(如表格、树形视图、面板、按钮等)的使用方法和自定义方式,让读者了解如何构建复杂的用户界面。 在布局管理方面,书中详细阐述了Ext GWT的布局系统,包括绝对...
### ext表格合并单元格的方法 #### 背景与概述 在进行Web开发时,特别是在使用Ext JS框架处理表格数据展示的过程中,经常会遇到需要合并单元格的情况。这不仅可以提升数据展示的美观性,还能增强数据的可读性和...
EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战EXT实战
对于不常见的数据源和协议,可以通过自定义reader和proxy来扩展其功能,例如DWRProxy使得EXT能够直接与DWR(Direct Web Remoting)进行通信。 10.2 Ext.data.Connection Ext.data.Connection是Ext.lib.Ajax的封装,...
3. **模板和渲染函数**:EXT使用XTemplate进行模板渲染,自定义控件可以定义自己的模板来决定如何显示内容。同时,可以编写渲染函数,以处理更复杂的逻辑,如动态生成HTML或计算样式。 4. **事件处理**:EXT控件...
EXT 单元格复制是一个与数据处理相关的技术主题,尤其在电子表格软件或者数据库管理中。EXT 可能是扩展或特殊格式的意思,但没有直接的上下文来明确这一点。根据提供的标签“源码”和“工具”,我们可以推测这是一个...
在EXT JS中,自定义控件是通过继承EXT的基础组件并对其进行扩展来实现的。这允许开发者创建符合特定需求的个性化组件,同时充分利用EXT提供的强大功能。以下将详细讲解两种常见的自定义EXT控件的方法: 1. **重载 `...
`Ext自定义Grid Cell插件`是为了满足这种需求而设计的,它扩展了`Ext Grid`的基本功能,允许开发者在每个单元格内插入自定义的控件。通过这种方式,我们可以为每个单元格提供特定的行为,比如添加按钮触发特定操作,...
然而,标准的EXT Grid并未提供在单元格上显示自定义提示信息的功能。为了解决这个问题,开发者通常会利用EXT的可扩展性,创建自定义的用户扩展(Ux,User Extension)来实现这样的需求。这里的"UxcellToolTip"就是一...
1.此控件支持Ext3.2及以上版本 2.用法与Ext.form.DateField一样,xtype:'datetimefield' 3.不需要导入css或其他js 4.解决某些插件导入会显示对象未定义问题
因此,以下内容将基于标题“EXT.js4.2实战”和描述“EXT.js4.2实战EXT.js4.2实战EXT.js4.2实战EXT.js4.2实战”进行知识点的提炼和扩展。 ### EXT.js4.2实战 EXT.js4.2是EXT JS框架的第4.2版本,是一个完整的前端...