1

拡張ライブラリのアウトラインコントロールがあります。アウトラインに2つのbasicLeafNodeがあります。これらの各ノードでのonclickイベントは、いくつかのコードを実行することになっています。問題は、ページが開いているときにこれらのonClickイベントの両方が実行されているが、実際にノードをクリックしたときに実行されていないように見えることです。

何が間違っている可能性がありますか?

<xe:outline id="outline1">

<xe:this.treeNodes>
        <xe:basicLeafNode label="Set Value 1">
            <xe:this.onClick><![CDATA[#{javascript:getComponent("inputText1").value = "123";}]]></xe:this.onClick>
        </xe:basicLeafNode>
        <xe:basicLeafNode label="Set Value2">
            <xe:this.onClick><![CDATA[#{javascript:getComponent("inputText2").value = "456";}]]></xe:this.onClick>
        </xe:basicLeafNode>
    </xe:this.treeNodes>

</xe:outline>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br>Value 1:&#160;
<xp:inputText id="inputText1"></xp:inputText>
<xp:br></xp:br>Value 2:&#160;
<xp:inputText id="inputText2"></xp:inputText>
4

1 に答える 1

4

basicLeafNodeのonClickイベントは、クライアント側のJS専用です。各basicLeafNodeのsubmitValueプロパティを使用して、アウトラインコントロールのonItemClickイベントにSSJSを追加する必要があります。次に、context.getSubmittedValue()を使用して、クリックされたノードを確認し、それに応じて動作します。

<xe:outline id="outline1">
    <xe:this.treeNodes>
        <xe:basicLeafNode label="Set Value 1" submitValue="1"></xe:basicLeafNode>
        <xe:basicLeafNode label="Set Value2" submitValue="2"></xe:basicLeafNode>
    </xe:this.treeNodes>
    <xe:this.onItemClick><![CDATA[#{javascript:
        if (context.getSubmittedValue() == "1") {
            getComponent("inputText1").value = "123"
        } else if (context.getSubmittedValue() == "1") {
            getComponent("inputText2").value = "456"
        }
    }]]></xe:this.onItemClick>
</xe:outline>

XPages Extension Libraryの本(240ページ)から:

onClickプロパティを使用すると、開発者はクライアント側のJavaScriptコードを実行でき、submit-Valueプロパティを使用すると、開発者はサーバーに返される値を指定できます。この値は、ツリーノードを含むコントロールのonItemClickイベントからアクセスされます。

于 2013-02-07T20:42:20.120 に答える