JS 中的变量发生变化,extjs中如何用store重新加载?
本帖最后由 hqgcxy 于 2014-04-28 21:35:49 编辑
JS 中的变量发生变化,ExtJs中store如何重新加载?
*.Html
.......
var arr = new Array();
function ReadCommData(){
var info = document.getElementById("MyComm").ReadComm(1,0); //从串口读取数据
var temp = info.split("|"); //分离
arr = new Array(temp); //转换成arrayReader需要的格式
}
.........
Sm.js文件
Ext.onReady(function(){
Ext.BLANK_IMAGE_URL = '../extjs/resources/images/default/s.gif';
var cm = new Ext.grid.ColumnModel({
{header:'ZL',dataIndex:'zl'},
{header:'CD',dataIndex:'code'},
{header:'FCT',dataIndex:'fct'}
})
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(arr),
reader: new Ext.data.ArrayReader({}, [
{name: 'zl,'},
{name: 'code'},
{name: 'fct'}
])
});
store.load();
var grid = new Ext.grid.Grid({
renderTo: 'grid',
store: store,
cm: cm
});
})
html其他函数调用ReadCommData, 返回的数据,如何添加到grid的store里?
如果将ReadCommData 移到 Ext.Onready({})里面,html其他调用处又找不到相关的函数,这中情况该怎么处理?
------解决方案--------------------
store改为全局变量,在ReadCommData中调用store.loadData加载新数据就行了
window.store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(arr),
reader: new Ext.data.ArrayReader({}, [
{name: 'zl,'},
{name: 'code'},
{name: 'fct'}
])
});
function ReadCommData(){
var info = document.getElementById("MyComm").ReadComm(1,0); //从串口读取数据
var temp = info.split("
------解决方案--------------------
"); //分离
arr = new Array(temp); //转换成arrayReader需要的格式
store.loadData(arr)
}