ユーザーが移動してウィンドウを閉じたり、ログアウトしたりした場合に、ユーザーのAdvancedDataGrid列の順序を保持したいと思います。コードをグリッドの親コンテナ(タイトルウィンドウなど)に配置すると機能するコード(以下を参照)があります。コードを各グリッドコンテナではなくAdvancedDatagridサブクラスに配置して機能を一般化し、選択内容を保存/ロードするときにすべてのグリッドが単一の場所にアクセスできるようにします。私のアプローチは、データフィールド名とグリッド名を配列に格納し、共有オブジェクトとの間で保存/読み取りを行うことです。そして、その順序に基づいて列の順序を更新します。Advanced Datagridサブクラスのコードを使用すると無効化は失敗しますが、グリッドの親では正常に機能します。誰かアイデアがありますか?iveは2日間これに対して私の頭を叩いていました:(
プライベート関数loadSettings(name:String = "custom"):void {var gridName:String = this.stripUIDNumbers(this.uid); var temp:Array = new 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");
}