アプリケーションレイアウトコントロールを利用するアプリケーションがあります。UIには、タイトルバーセクションで定義された2つのタブがあります。UIには、サイドバーにナビゲーターコントロールも含まれており、ユーザーはリンクを選択して他のページを開くことができます。私が問題を抱えているのは、ユーザーが現在のナビゲーターでリンクをクリックしたときに、現在のタブをアクティブなタブとして設定したままにすることです。
2 に答える
アプリケーションレイアウトコントロールの「構成」プロパティは複合型であり、レイアウト自体を定義するすべてのプロパティをサポートします。それらのプロパティの1つは「navigationPath」です。Netflixがサイトでこのコントロールを使用した場合、ゴーストバスターズの映画情報ページを表示するときのそのプロパティの値は次のようになります。
/home/genres/comedies/541018
したがって、このプロパティは、*nixファイルパス構文を使用して「サイトマップ」内のページの現在の場所を記述する方法と考えることができます。
各titleBarTabも複合型です。そのプロパティの1つは「選択」です。このプロパティは、レイアウト全体の現在のnavigationPathの一部またはすべてに一致する値を指定することを目的としています。したがって、Netflixの例を続けると、次のようにタブを定義できます。
<xe:this.titleBarTabs>
<xe:pageTreeNode
page="/genre.xsp"
label="Action"
queryString="genre=action"
selection="/home/genres/action/*" />
<xe:pageTreeNode
page="/genre.xsp"
label="Comedy"
queryString="genre=comedies"
selection="/home/genres/comedies/*" />
<xe:pageTreeNode
page="/genre.xsp"
label="Drama"
queryString="genre=dramas"
selection="/home/genres/dramas/*" />
</xe:this.titleBarTabs>
Ghostbustersのページでは、レイアウトのnavigationPathプロパティが、「Comedy」というラベルの付いたpageTreeNodeのselectionプロパティに定義されたパターンと一致するため、そのタブは選択された状態で表示されますが、他のタブは選択されていないように見えます。
また、おそらく注目に値するのは、レイアウト構成に「defaultNavigationPath」というプロパティも含まれていることです。このプロパティの値は、navigationPathプロパティに値がない場合、各titleBarTabのselectionプロパティと比較されます。したがって、通常、これを最初のタブが選択された状態で表示されるパスに設定する必要があります。
ブルース、私がこの権利を読んでいるなら、私はしばらく前に同様の問題に遭遇しました。これはまったく役に立ちますか?TitleBarタブのsessionScope変数の設定