richtext控件不存储输入内容

时间:2012-11-27 16:39:35

标签: xpages

我的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>

填写文本,用户看到并写了一些。最后用户提交表单:但是在richtext字段中只保存了填写的文本片段!如果用户不使用该按钮,但只键入其文本,则会正确保存文本。

当我将richtext控件更改为多行编辑框时,一切正常。

感谢您的帮助

乌韦

1 个答案:

答案 0 :(得分:5)

问题是你没有完全刷新richtext,只有具有richttext组件id的textarea。但还有两个必须刷新的组件:inputRichText1_mod和inputRichText1_h,两个自动生成的字段来自 XspInputRichText 组件。

如果刷新周围的元素而不是代码应该工作:

<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>