虽然已经参加工作,专心搞Java后台,但是学校的boss的问题还是要处理的。现在就是需要将grid中某一列的值每一秒更新一次,其他的属性值不变,据说师妹搞了两天没搞出来。。。。加班整了一个小例子,可以实现对特定列的定数刷新。
代码如下:
Ext.onReady(function(){
Ext.QuickTips.init();
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
var PersonRecord=[{name:'sex'},{name:'id'},{name:'age'}];
var data = [
['boy', 0,13],
['girl', 1,14]
];
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.ArrayReader({}, PersonRecord)
});
store.load();
/*************************************GetRandomNum()函数就是定时更改grid列数据的关键***********************************************/
/**********************************1.遍历store的record 2.给record中指定的列赋值 3.将对store的数据所做的修改提交**************************************************/
function GetRandomNum()
{
var Min=1;var Max=100;
var Range = Max - Min;//
for (var i = 0; i < store.getCount(); i++) {//store遍历,可能有多条数据
var record=store.getAt(i);//获取每一条记录
record.set('age', Min + Math.round(Math.random() * Range));//修改列的值
record.commit(); //将修改提交
}
}
/**********************************************************************************/
// create the Grid
var grid = new Ext.grid.GridPanel({
store: store,
columns: [
{
id :'sex',
header : 'sex',
width : 160,
sortable : true,
dataIndex: 'sex'
},
{
header : 'id',
width : 75,
sortable : true,
dataIndex: 'id'
}
,
{
header : 'age',
width : 75,
sortable : true,
dataIndex: 'age'
}
],
stripeRows: true,
height: 350,
width: 600,
title: 'Grid',
stateful: true,
stateId: 'grid'
});
/****************************js的定时器,每一秒执行一次***************************************************/
setInterval(GetRandomNum,1000);
/*********************************************************************************************************/
grid.render('grid-example');
});
请忽略我的命名。在此奉上这个小例子的js、html、css等。直接可以在浏览器中查看。