话不多说,贴上代码
html代码:
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../extjs3/resources/css/ext-all.css" rel="external nofollow" />
<script type="text/javascript" src="../extjs3/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../extjs3/ext-all.js"></script>
<script type="text/javascript" src="array-grid.js"></script>
<style type="text/css">
.<span style="font-family: arial, helvetica, sans-serif;">my_row_class</span><span style="font-family: arial, helvetica, sans-serif;">{ background:gray;}</span>
</style>
</head>
<body>
<div id="grid-example"></div>
</body>
</html>
js代码,其中应-----隔开的代码即为关键代码,自己分析吧:
ext.onready(function(){
ext.quicktips.init();
ext.state.manager.setprovider(new ext.state.cookieprovider());
// sample static data for the store
var mydata = [
['3m co', 71.72, 0.02, 0.03, '9/1 12:00am'],
['3m co', 71.72, 0.02, 0.03, '9/1 12:00am'],
['alcoa inc', 29.01, 0.42, 1.47, '9/1 12:00am'],
['altria group inc', 83.81, 0.28, 0.34, '9/1 12:00am'],
['altria group inc', 83.81, 0.28, 0.34, '9/1 12:00am'],
['altria group inc', 83.81, 0.28, 0.34, '9/1 12:00am'],
['wal-mart stores, inc.', 45.45, 0.73, 1.63, '9/1 12:00am']
];
/**
* custom function used for column renderer
* @param {object} val
*/
function change(val) {
if (val > 0) {
return '<span style="color:green;">' + val + '</span>';
} else if (val < 0) {
return '<span style="color:red;">' + val + '</span>';
}
return val;
}
/**
* custom function used for column renderer
* @param {object} val
*/
function pctchange(val) {
if (val > 0) {
return '<span style="color:green;">' + val + '%</span>';
} else if (val < 0) {
return '<span style="color:red;">' + val + '%</span>';
}
return val;
}
// create the data store
var store = new ext.data.arraystore({
fields: [
{name: 'company'},
{name: 'price', type: 'float'},
{name: 'change', type: 'float'},
{name: 'pctchange', type: 'float'},
{name: 'lastchange', type: 'date', dateformat: 'n/j h:ia'}
]
});
// manually load local data
store.loaddata(mydata);
// create the grid
var grid = new ext.grid.gridpanel({
store: store,
columns: [
{
id :'company',
header : 'company',
width : 160,
sortable : true,
dataindex: 'company'
},
{
header : 'price',
width : 75,
sortable : true,
renderer : 'usmoney',
dataindex: 'price'
},
{
header : 'change',
width : 75,
sortable : true,
renderer : change,
dataindex: 'change'
},
{
header : '% change',
width : 75,
sortable : true,
renderer : pctchange,
dataindex: 'pctchange'
},
{
header : 'last updated',
width : 85,
sortable : true,
renderer : ext.util.format.daterenderer('m/d/y'),
dataindex: 'lastchange'
}
],viewconfig : {forcefit:true
//------------------------------------------------
,getrowclass : function(record,rowindex,rowparams,store){
if("3m co"==record.get('company')){
return 'my_row_class';
}
}
//------------------------------------------------
},
striperows: true,
autoexpandcolumn: 'company',
height: 350,
width: 600,
title: 'array grid',
// config options for stateful behavior
stateful: true,
stateid: 'grid'
});
// render the grid to the specified div in the page
grid.render('grid-example');
});
发表评论