昨天搞定用flash访问本地文件后,今天研究了一下datagrid的使用。以下为利用datagrid及共享对象将数据保存在本地文件的示例:
代码如下:
//此段代码放在主帧中
System.useCodepage = true;
//生成SharedObject共享对象,文件名为employee.sol
myLSO = SharedObject.getLocal("employee");
//如果本地没有数据的场合
if (myLSO.data.myObj == undefined) {
//组datagrid列名称
dg0.columnNames = ["Order"];
//数据对象数组
myDP0 = new Array();
for (var i = 0; i<3; i++) {
myDP0.addItem({Order:i});
}
//将数据装入组datagrid对象中
dg0.dataProvider = myDP0;
//设置用户信息datagrid列名称
dg1.columnNames = ["id", "Name"];
//数据对象数组
myDP1 = new Array();
for (var i = 0; i<6; i++) {
myDP1.addItem({id:i, Name:"rainbow"+i});
}
dg1.dataProvider = myDP1;
} else {
//读取本地数据
var order = myLSO.data.myObj.order;
var employee = myLSO.data.myObj.employee;
//将数据装入datagrid对象中
dg0.dataProvider = order;
dg1.dataProvider = employee;
}
//设置datagrid对象的滚动条
dg0.vScrollPolicy = "off";
dg0.hScrollPolicy = "off";
//标题高度
dg0.setHeaderHeight(30);
dg1.vScrollPolicy = "on";
dg1.hScrollPolicy = "off";
dg1.setHeaderHeight(30);
//滚动条事件
//一个组2个员工
var myEvent = new Object();
myEvent.scroll = myEvent.change=function () {
if (dg1.vPosition%2>0) {
dg0.vPosition = (dg1.vPosition-1)/2;
} else {
dg0.vPosition = dg1.vPosition/2;
}
if (dg1.selectedIndex%2>0) {
dg0.selectedIndex = (dg1.selectedIndex-1)/2;
} else {
dg0.selectedIndex = dg1.selectedIndex/2;
}
};
//设置滚动位置
var myEvent1 = new Object();
myEvent1.scroll = myEvent1.change=function () {
dg1.vPosition = dg0.vPosition*2-1;
};
//选择事件
var myEvent2 = new Object();
myEvent2.change = function() {
dg1.selectedIndex = dg0.selectedIndex*2;
};
//为datagrid对象加事件
dg1.addEventListener("scroll", myEvent);
dg1.addEventListener("change", myEvent);
dg0.addEventListener("scroll", myEvent1);
dg0.addEventListener("change", myEvent2);
//生成并修改datagrid的右键菜单
var focusInEvent = new Object();
focusInEvent.focusIn = function() {
myMenu = new ContextMenu();
myMenu.hideBuiltInItems();
myMenu.customItems.push(new ContextMenuItem("AAAAAA", test01));
myMenu.customItems.push(new ContextMenuItem("BBBBBB", test01));
dg0.menu = myMenu;
dg1.menu = myMenu;
};
dg0.addEventListener("focusIn", focusInEvent);
dg1.addEventListener("focusIn", focusInEvent);
//右键菜单事件
function test01(obj, item) {
trace("test01");
}
//以下代码放在Save按钮中
on (click) {
myLSO = SharedObject.getLocal("employee");
myObj = [];
order = new Array();
for (var i = 0; i<this._parent.dg0.rowCount; i++) {
order.push({Order:this._parent.dg0.getItemAt(i)["Order"]});
}
employee = new Array();
for (var i = 0; i<this._parent.dg1.rowCount; i++) {
employee.push({id:this._parent.dg1.getItemAt(i)["id"], Name:this._parent.dg1.getItemAt(i)["Name"]});
}
myObj.order = order;
myObj.employee = employee;
myLSO.data.myObj = myObj;
}
修改表格中的数据后,单击保存后重新打开网页,修改后的数据仍然保存在表格中,这就是利用了共享对象来进行本地文件保存。
浙公网安备 33010602011771号