0

ユーザーが移動してウィンドウを閉じたり、ログアウトしたりした場合に、ユーザーの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");
        }
4

1 に答える 1

0

一見すると、_columns 変数を使用している理由をお聞きしたいと思います。「列」ゲッター/セッターを使用すると、無効化プロセスを使用していること、および継承された AdvancedDatagrid で正しいフラグが設定およびリセットされていることが保証されます。これが最初に変更することです。(また、次の行で列配列を設定する場合、 splice(0) 行は不要です)。

まあ、それは私が変更する 2 番目のことです...最初に、ローカルの sharedObjects が型付けされることを確認しますが、それは私自身のコードの読みやすさのための個人的な好みです。Google の「flash.net.registerClassAlias」または ValueObject クラスで何かを実行して、dataField の順序を保存できるようにして、「for each *」を実行する必要がないようにします。

少なくとも少しは役立つことを願っています。幸運を祈ります。

于 2010-11-02T12:51:35.393 に答える