1

私の XPage には、ユーザーがテキスト スニペットを入力できる RT コントロールがあり、さらにテキストを追加してコンテンツを完成させます。

「充填ボタン」の eventHandler:

<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="Body1">
    <xp:this.action><![CDATA[#{javascript:
    var mykey = getComponent("Aufgabe1").getValue();
    var bodytxt:string = @DbLookup(@DbName(), "lookupOrdertypes",mykey,4,"[FAILSILENT]");
    if (checkContent(bodytxt)) getComponent("Body1").setValue(bodytxt);
}]]></xp:this.action>
</xp:eventHandler>

テキストが入力され、ユーザーはそれを見て、さらに書きます。最後に、ユーザーはフォームを送信します。ただし、リッチテキスト フィールドには、入力されたテキスト スニペットのみが保存されます。ユーザーがそのボタンを使用せず、テキストのみを入力すると、テキストは正しく保存されます。

リッチテキスト コントロールを複数行の編集ボックスに変更すると、すべて正常に動作します。

助けてくれてありがとう

ウーヴェ

4

1 に答える 1

5

問題は、リッチテキストを完全に更新していないことです。リッチテキスト コンポーネントの ID を持つテキストエリアのみを更新しています。しかし、リフレッシュする必要がある他の 2 つのコンポーネントがあります。inputRichText1_mod と inputRichText1_h です。これらは、XspInputRichTextコンポーネントから自動的に生成された 2 つのフィールドです。

代わりに周囲の要素を更新すると、コードが機能するはずです。

<xp:div id="refreshMe">
   <xp:inputRichText id="Body1" value="#{document1.Body}"></xp:inputRichText>
</xp:div>

代わりにdivを更新します。

<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="refreshMe">
   <xp:this.action><![CDATA[#{javascript:
      var mykey = getComponent("Aufgabe1").getValue();
      var bodytxt:string = @DbLookup(@DbName(), "lookupOrdertypes",mykey,4,"[FAILSILENT]");
      if (checkContent(bodytxt)) getComponent("Body1").setValue(bodytxt);
   }]]></xp:this.action>
</xp:eventHandler>
于 2012-11-28T07:58:28.617 に答える