编写js文件
1. 数据,要显示到页面上的数据
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'
}
]
];
装载入Ext.data.SimpleStore
把数据装载到一个简单的Store中
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);
用最常用的GridPanel显示数据
//定义方法,为数据载入表格时候有不同的显示
function leftPadfun(val){
return String.leftPad(val, 5, "0");
}
/**
* 根据text: , url 生产一条完整的链接
*/
function linkerfun(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;
}
/**
* 根据数值的大小分别显示不同的颜色
* 大于0 显示为绿色
* 小于0 显示为红色
*/
function numfun(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 iconfun(val){
return '<img src="images/' + val + '">'
}
/**
* 得到提示图片
* 添加qtip属性
* 要在HTML中使用QuickTip显示提示,只要在标记中加入qtip属性就可以了
* Ext.QuickTips.init();进行初始化
*
*/
function qtipsfun(val){
return '<span style="display:table;width:100%;" qtip=\'<img src="images/' + val + '">\'>' + val + '</span>'
}
/**
* 包含提示的文字
*/
function tipsfun(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: leftPadfun,
dataIndex: 'id'
}, {
header: "链接",
width: 75,
sortable: true,
renderer: linkerfun,
dataIndex: 'linker'
}, {
header: "数字",
width: 75,
sortable: true,
renderer: numfun,
dataIndex: 'number'
}, {
header: "时间",
width: 85,
sortable: true,
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
dataIndex: 'datetime'
}, {
header: "图标",
width: 75,
sortable: true,
renderer: iconfun,
dataIndex: 'icon'
}, {
header: "图片提示",
width: 75,
sortable: true,
renderer: qtipsfun,
dataIndex: 'qtips'
}, {
header: "文字提示",
width: 75,
sortable: true,
renderer: tipsfun,
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';
// }
rowclick : rowclickevent
}
});
// 对QuickTips进行初始化
Ext.QuickTips.init();
function rowclickevent(trid, rowIndex, e)
{
Ext.get('op').dom.value += '------------------------\n' +
Ext.encode(store.getAt(rowIndex).data) + '\n';
}
在html文件中显示出来
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>自定义单元格的显示格式</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!-- 引入必要的Ext库文件-->
<link rel="stylesheet" type="text/css" href="../Extjs/resources/css/ext-all.css" />
<!-- EXT LIB -->
<script src="../Extjs/adapter/ext/ext-base.js"></script>
<script src="../Extjs/ext-all.js"></script>
<script type="text/javascript" src="1_Grid.js"></script>
<script type="text/javascript">
Ext.onReady(function(){
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
Ext.Msg.minWidth = 300;
// 把表格加载到id为panell的div中
grid.render('panel1');
// 设置textarea为空
Ext.get('op').dom.value = "";
})
</script>
</head>
<body>
<h1 style="margin:20px 0px 0px 20px;">第4章 自定义单元格的显示格式</h1>
<br/>
<div style="padding-left:20px;">
<div id="panel1">
</div>
<br>
<div>事件:</div>
<textarea id='op' rows="10" style="width:800px;"></textarea>
<br/>
</div>
</body>
</html>