2012-03-10 19 views
3

私はこれを理解しようと数日間を過ごしました。私はあきらめます。ナビゲータのSelectedプロパティはどのように使用しますか?

私はロータススクリプトプログラマーであり、XPageを学ぶことを試みています。私が研究したすべてのサンプルとサンプルプログラムは、この部分だけを触れています。

エクステンションライブラリナビゲータコントロールの[選択]プロパティの使用方法を段階的に説明できますか?

私は拡張ライブラリからレイアウトコントロールに基づいて独自のカスタムコントロールを作成し、navigationPathというカスタムプロパティを作成しました。また、5ページのリンクノードを持つナビゲータのカスタムコントロールも作成しました。各ページリンクノードの「選択」プロパティでは、私は次のようSSJSを置く:

if(compositeData.navigationPath == "/Home/ApplicationPool"){ 
    return true 
}else{ 
    return false 
} 

/ホーム/ ApplicationPoolは、私は、特定のページリンクノードの「選択」プロパティに入れた値に対応しています。

各レイアウトカスタムコントロールでは、 "navigationPath"プロパティをcompositeData.navigationPathに設定しました。

私は何を欠席しましたか?

答えて

5

selectedselection財産であり、彼らは非常に異なるものを意味し、同時に使用することはできません。上の質問のコード例では、selectedプロパティを使用していますが、この場合は間違っています。

ツリー内のツリーノードは、selectionプロパティを使用するように設定する必要があります。これは、カスタムプロパティを使用してアプリケーションレイアウトに渡された値と一致するかどうかを確認するために使用されるRegEx値です。

<xe:navigator id="navigator1" expandable="true" expandEffect="wipe"> 
    <xe:this.treeNodes> 
    <xe:pageTreeNode label="nodeName" page="/page.xsp" selection="/Home/ApplicationPool" /> 
    </xe:this.treeNodes> 
</xe:navigator> 

ご覧のとおり、真偽結果を評価するためにSSJSを使用する必要はありません。 treeNodeの値とXPageのapplicationLayoutコントロールの値を一致させるだけです。

あなたは、レイアウトタイトルバーにタブを使用している場合、あなたはそこに選択のプロパティを設定することができ、またそれは、そのタブがそれの開始時に/Home/を持っていることはnavigationpathカスタムプロパティのすべてののXPageのために強調表示になります形式/Home/.*を使用しています。 RegExであることを忘れないでください。有効なRegExステートメントを使用して、この特定のプロパティに多くの力を加えることができます。

+0

この回答をサポートするだけです。ページノードでプロパティを選択するのは間違いです。それは無視されるからです。レンダラーは、ナビゲーションパスが設定されているかどうか(たとえば、ApplicationLayout内にあるかどうか)を調べ、設定されている場合は、指定された「選択」に対してRegexチェックを使用します。 –

+0

applicationLayoutの外部でナビゲータを使用している場合、ナビゲーションパスは存在しません。したがって、指定された選択が現在のページと等しいかどうかをチェックします。つまり、あなたのページがhome.xspならば、あなたは "/ home"を選択として使うことができます。自動的に '.xsp'が追加されます。 –

2

ナビゲータコントロールのツリーノードでは、開くxpageの名前とそれに関連する選択肢を定義します。例:

<xe:pageTreeNode page="/text.xsp" selection="/Home/Test" label="Test page"> 
</xe:pageTreeNode> 

applicationLayoutを使用する個々のxpageでは、navigationPathの値を定義します。この値がnaviagorコントロールのツリーノードのいずれかのエントリと一致する場合、対応するメニュー項目がブラウザで強調表示されます。 navigationPathの値を定義する最適な方法は、(使用している)カスタムプロパティを使用することです。ここにその例があります:

<xe:applicationLayout id="applicationLayout1"> 
     <xe:this.configuration> 
      <xe:oneuiApplication navigationPath="${javascript:compositeData.navigationPath}" ... 

エクステンションライブラリのチームルームとディスカッションテンプレートですべてを使用する例があります。

使用方法に関する私の説明に基づいて、ナビゲーションコントロールの選択プロパティを正しく使用していないことがわかります。各ツリーノードに一意の値を定義するだけで済みます(各xpages上でnavigationPathと一致する場合に使用されます)。

だからあなたの具体的な例のためだけに戻すために、あなたの選択のプロパティを変更:「/ホーム/ ApplicationPool」

+0

私は再チェックしますが、私はそれがまさしく私がやったことだと思いました。引用符で囲む必要はありませんか? –

+0

ここに私たちに私ナビゲーター出典: \t \t \t \t \t \t \t \t \t <[CDATA [#{javascriptをします。if(compositeData.navigationPath ==「/ホーム/ ApplicationPool 「){ \tリターン真 }他{ \tリターン偽 }}]]> \t \t \t \t \t \t \t

+1

選択と選択したプロパティの両方を使用することはありませんでした。私は選択されたプロパティを使用しません。私は、ナビゲーションコントロール内のツリーノードのapplicationLayoutコントロールと選択でnavigationPathを使用します。この組み合わせにより、特定のメニュー項目が2つが一致したときにアクティブとしてマークされます。 これで、選択したプロパティの使用を削除しようとしました。 –

関連する問題