如果用户移动它们并关闭窗口或注销,我想为用户保留AdvancedDataGrid列顺序。我有代码(见下文),当我将代码放入一个网格父容器时 - 例如,一个标题窗口。我想通过将代码放置在AdvancedDatagrid子类中而不是每个网格容器来概括功能,以便在保存/加载其选择时,我的所有网格都可以访问单个位置。我的方法是将数据字段名称和网格名称存储在数组中,并从共享对象中保存/读取/读取。并根据该订单更新列顺序。当我使用Advanced Datagrid子类中的代码但在网格父项中正常工作时,失败失败。任何人有任何想法?我一直敲我的头这2天:(invalidateList()在自定义子类触发时对AdvancedDataGrid不起作用
私有函数loadSettings(参数name:String = “自定义”):无效 {VAR gridName:字符串= this.stripUIDNumbers(this.uid); VAR温度:阵列=新的Array;
this.wsColOrder = SharedObject.getLocal(sharedObjectName);
if (wsColOrder.size > 0)
{
for each (var item:* in wsColOrder.data)
{
if (item is Array && item.indexOf(gridName) != -1) // check for the current grid
{
for each (var saveColDataField:String in item)
{
for each (var existingCol:AdvancedDataGridColumn in this._columns)
{
if (existingCol.dataField == saveColDataField)
{
temp.push(existingCol);
}
}
}
this._columns.splice(0); // clean out the existing colum array
this._columns = temp // assign persisted col order
this.invalidateList(); // update the grid
}
}
}
else
{
// saveSettings("default");
}
另外,你什么时候调用loadSettings()? – 2010-11-02 12:52:20
感谢Jeremy的帮助。我应该早点回来。我最终不得不妥协妥协。我不得不将功能存储在一个包含文件中(用于20多个网格),并在网格所有者级别访问它,因为在mxml中定义的网格列属性设置似乎总是覆盖actionscript运行时更改,进一步定义网格祖先。 – BrianOJee 2011-02-15 10:42:35