0

多くのビューを持つ既存の Notes アプリに XPage フロントエンドを配置しようとしています。現在、既存のアプリ/データとは別の NSF で XPage とカスタム コントロール (CC) を構築しています。(必須ではありませんが、回答に影響する場合に備えてこれを提供します。)

メンテナンスの計画では、最小限の再利用可能な XPages/CC を構築したいと考えていました。基本となる Notes ビューごとに個別の CC が必要になることは承知していますが、1 つまたはいくつかの XPage を再利用して、「コンテンツ」パネル/div に表示するビューを実行時に決定したいと考えていました。(「計算されたカスタム コントロール」?)

さらに、(1) クリックによるビュー選択を可能にし、(2) どのビューが選択されたかを視覚的に示す XPage の左側のメニュー/ビューのリストを提供したいと考えていました (繰り返しますが、再利用性を目的としています... ためのメニューではありません)。各ビュー。)

(ノーツ アプリ パラレル: 左側のフレームにアウトラインがあり、アウトラインから選択されたビューを読み込むためのコンテンツ フレームがあるフレームセット。)

提案、リソース、リンク、ポインタなどをいただければ幸いです。

また、返信では、拡張ライブラリを使用できないと仮定してください。

明らかに新しい XPages 開発者を助けてくれてありがとう。

4

4 に答える 4

3

URL パラメータを使用して、表示するビューを制御できます。これを行うには、次のように計算された列を持つ XPage を作成できます。

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.data>
        <xp:dominoView var="view1" viewName="All"></xp:dominoView>
    </xp:this.data>
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager1">
        </xp:pager>
    </xp:this.facets>

    <!-- Column 1 -->
    <xp:viewColumn id="viewColumn1"
        columnName="#{javascript:view1.getColumnNames().get(0)}">
        <xp:this.rendered><![CDATA[#{javascript:view1.getColumnCount() > 0}]]></xp:this.rendered>
        <xp:viewColumnHeader id="viewColumnHeader1"
            value="#{javascript:view1.getColumnNames().get(0)}">
        </xp:viewColumnHeader>
    </xp:viewColumn>

    <!-- Column 2 -->
    <xp:viewColumn id="viewColumn2"
        columnName="#{javascript:view1.getColumnNames().get(2)}">
        <xp:this.rendered><![CDATA[#{javascript:view1.getColumnCount() > 1}]]></xp:this.rendered>
        <xp:viewColumnHeader id="viewColumnHeader2"
            value="#{javascript:view1.getColumnNames().get(2)}">
        </xp:viewColumnHeader>
    </xp:viewColumn>

</xp:viewPanel>

</xp:view>

これで、URL を使用して XPage を開くことができます

http://example.com/yourdb.nsf/view.xsp?viewName=[NAME OF THE VIEW]

さらに、 databaseNameパラメータを追加して、別のデータベースからのビューを使用できます。他のプロパティも計算できます (分類、並べ替えなど)。

于 2012-12-14T16:48:56.070 に答える
2

ビューパネルの代わりにリピートコントロールを使用することを検討してください。これにより、ビューパネルの動作や仮定に制約されることなく、データの表現方法に完全な柔軟性がもたらされます。これにより、データのサブセットを表示するのに十分な柔軟性を備えた単一のページを簡単に設計できます。

于 2012-12-15T04:44:59.057 に答える
2

9 つのエピソードでこれらのメモを確認してください http://notesin9.com/index.php/2012/09/26/notesin9-079-how-to-use-the-xpages-dynamic-view-panel-control/

http://notesin9.com/index.php/2012/10/22/notesin9-083-using-the-xpages-dynamic-view-control-part-2/

于 2012-12-14T16:05:10.643 に答える
0

最善の解決策は、2つのサービスと1つのページを作成することです。

  1. ビューコンテンツをJSONとして返すサービスを作成します(ビュープロパティ、エージェント、Webサービス、またはxPageを使用して、最適なものを入力します)
  2. 左側のメニュー/ビューのリストをJSONとして返すサービスを作成します
  3. ポイント1と2からデータをロードしてUIを構築するjavascriptコアを使用してxPageを作成します。jQueryとjQueryUIが役に立ちます。

このソリューションは柔軟性があり、経験を積んで成長します

于 2012-12-17T20:40:50.197 に答える