0

ビューを表示する繰り返しコントロールがあります。選択したドキュメントに対してアクションを実行できるように、チェックボックスを含めたいと思います。チェックボックスを追加しても問題ありませんが、チェックボックスがオンになっているかどうかを確認して、その行に関連付けられているドキュメントにアクセスするにはどうすればよいですか?

私が持っていた考えは次のとおりです。

  1. チェック ボックス変更イベントで、ドキュメントの UNID を配列スコープ変数に追加または削除します。次に、その配列内のドキュメントに対してアクションを実行します。

  2. チェックボックスを忘れて、リストボックスをポップアップして、ユーザーがそこから選択できるようにします。

しかし、もっと簡単な方法はありますか?

4

3 に答える 3

2

いつものように、Tim の答えは、長期的な健全性、健全性、およびコードの保守性に対する最善の策です。

また、すべてのバックエンド ロジックに Java を使い始める前に、私が過去に取った別のルートもあります。HashMap を含む page-load-bound dataContext を作成し、各チェックボックスをそれにバインドできます。キーごとに true または false が入力されるため、マップ エントリをループして true のものを見つけることができます。チェックされた値です。

名前データベースからリストを取得して、私が何を意味するかを示す簡単な例をまとめました。

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.data>
        <xp:dominoView var="names" databaseName="names.nsf" viewName="$NamesFieldLookup"/>
    </xp:this.data>
    <xp:this.dataContexts>
        <xp:dataContext var="checkedNames" value="${javascript: new java.util.HashMap() }"/>
    </xp:this.dataContexts>

    <xp:div id="refresher">
        <xp:repeat value="#{names}" var="name" rows="3">
            <xp:this.facets>
                <xp:pager xp:key="header" id="pager1" layout="Previous Group Next" />
            </xp:this.facets>
            <div>
                <xp:checkBox value="#{checkedNames[name.$9]}">
                    <xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="refresher"/>
                </xp:checkBox>
                <xp:text value="#{name.$9}"/>
            </div>
        </xp:repeat>

        <p><xp:text value="#{checkedNames}"/></p>
    </xp:div>

</xp:view>
于 2013-08-01T02:40:06.710 に答える