2

TreeGridとdataSourceを使用するSmartGWTWebアプリがあります。このtreeGridで、Cookieに保存されている値を事前に選択してほしい。Cookieに正しく保存される値を取得しましたが、treeGridにこれらの値を選択させるためのいくつかの異なる方法を試しましたが、機能させることができません。エントリポイントのonmoduleLoadメソッドでこれを実行しようとしています。

私が試してみました:

Cookies.setCookie( "selectedUnit", TreeGrid.getSelectedPaths() )

Cookieを設定し、ページがリロードされたとき:

TreeGrid.setSelectedPaths( Cookies.getCookie("selectedUnit" )
それがうまくいかないときは、選択したアイテムのIDだけを保存してみました。

Cookies.setCookies( "selectedUnit", TreeGrid.getSelected().getAttribute("id") )

次に、onLoadがそのレコードを見つけて選択しようとします。

TreeGrid.selectRecord( TreeGrid.getTree().find("id", Cookies.getCookie("selectedUnit") ) )

これも機能しなかったので、最後にTreeGrid.getSelectedState()を保存し、その値をCookie onLoadから取得して、最初の試みと同様にTreeGrid.setSelectedState()に渡しましたが、パスではなく状態を渡しました。

私はこれらのもののどれも機能させることができませんでした。'OnmoduleLoad'メソッドでアイテムを選択するようにTreeGridに指示できませんか?このアクションは、TreeGridが描画された後にのみ有効ですか?その場合、どこでどのようにこれを行うことができますか?

よろしくお願いします。

4

1 に答える 1

1

私はそれを考え出した:

最終的にset(/ get)SelectedStateを使用しました。私が抱えていた問題は、コンストラクターでsetSelectedStateを呼び出すことでした。データが実際に存在する前に、選択された状態を設定しようとしていました。これを修正するには、ツリーのonDataArrivedハンドラーを設定し、ツリーを展開して(すべてのデータを取得するため)、選択した状態を設定します。

于 2009-07-29T14:50:46.590 に答える