2012-11-27 31 views
1

我的XPage有一個RT控件,用戶可以在其中填充文本片段,並使用更多文本填充內容。richtext控件不存儲輸入內容

「填滿按鈕」的事件處理程序:

<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控件更改爲多行編輯框時,一切正常。

感謝您的幫助

烏韋

回答

5

的問題是,你是不是刷新富文本完全地,只與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>