如何仅使用基本文本区域编辑Xpages中RichText字段的内容
如何禁用富文本字段的CkEditor,以便只呈现基本标记而不使用任何编辑器 我确信我肯定遗漏了一些明显的东西,但我认为如果不使用CkEditor,就无法使用XPage创建一个字段存储为RT的文档。我希望能够提示用户输入“很多”文本,但只能通过简单的多行输入,并将其存储为RT 如果我有如何仅使用基本文本区域编辑Xpages中RichText字段的内容,xpages,Xpages,如何禁用富文本字段的CkEditor,以便只呈现基本标记而不使用任何编辑器 我确信我肯定遗漏了一些明显的东西,但我认为如果不使用CkEditor,就无法使用XPage创建一个字段存储为RT的文档。我希望能够提示用户输入“很多”文本,但只能通过简单的多行输入,并将其存储为RT 如果我有 带有RT字段的窗体 绑定到所述字段的xp:InputExtArea控件的XPage 保存按钮 链接到该表单的documentdatasource 保存时,使用字段值创建文档,但它存储为文本而不是RT。将comp
- 带有RT字段的窗体
- 绑定到所述字段的xp:InputExtArea控件的XPage
- 保存按钮
- 链接到该表单的documentdatasource
谢谢 我不确定如何操作字段类型。我假设Domino知道控件发生了什么,其方式与自定义控件格式化以匹配内容类型的方式大致相同。您可以强制使用内容类型 我可以将此作为备选方案。您可以在ckeditor中执行自定义工具栏操作,以删除工具栏并使其显示为普通文本字段。不过,这样做可能会导致UI复杂化。您还需要处理一个状态栏,使其显示为纯白色框。应该有另一个dojo属性类型 这段代码将为您提供一个没有工具栏的富文本框
<xp:inputRichText id="inputRichText1"
value="#{document1.content}">
<xp:this.dojoAttributes>
<xp:dojoAttribute name="toolbar">
<xp:this.value><![CDATA[#{javascript:var myToolbar = "[['']]";
return myToolbar}]]>
</xp:this.value>
</xp:dojoAttribute>
</xp:this.dojoAttributes>
</xp:inputRichText>
我不知道如何操作字段类型。我假设Domino知道控件发生了什么,其方式与自定义控件格式化以匹配内容类型的方式大致相同。您可以强制使用内容类型 我可以将此作为备选方案。您可以在ckeditor中执行自定义工具栏操作,以删除工具栏并使其显示为普通文本字段。不过,这样做可能会导致UI复杂化。您还需要处理一个状态栏,使其显示为纯白色框。应该有另一个dojo属性类型 这段代码将为您提供一个没有工具栏的富文本框
<xp:inputRichText id="inputRichText1"
value="#{document1.content}">
<xp:this.dojoAttributes>
<xp:dojoAttribute name="toolbar">
<xp:this.value><![CDATA[#{javascript:var myToolbar = "[['']]";
return myToolbar}]]>
</xp:this.value>
</xp:dojoAttribute>
</xp:this.dojoAttributes>
</xp:inputRichText>
您可以使用中将文本转换为富文本项
对于getAsObject
您将编写以下代码(document1
是您的数据源):
对于getAsString
,只需获取富文本字段的内容和文本值
value.getContentAsText()
因此,您为
编写的代码如下所示:
<xp:inputTextarea id="inputTextarea1" value="#{document1.rtfield}">
<xp:this.converter>
<xp:customConverter getAsString="#{javascript:value.getContentAsText()}">
<xp:this.getAsObject><![CDATA[#{javascript:var rtitem:NotesRichTextItem = document1.getDocument().createRichTextItem("rtfield");
rtitem.appendText(value);
return null;}]]></xp:this.getAsObject>
</xp:customConverter>
</xp:this.converter>
</xp:inputTextarea>
注意:如果希望使用文本区域更新富文本字段,则需要在getaObject
中编写附加代码,以便将文本转换为富文本项
对于getAsObject
您将编写以下代码(document1
是您的数据源):
对于getAsString
,只需获取富文本字段的内容和文本值
value.getContentAsText()
因此,您为
编写的代码如下所示:
<xp:inputTextarea id="inputTextarea1" value="#{document1.rtfield}">
<xp:this.converter>
<xp:customConverter getAsString="#{javascript:value.getContentAsText()}">
<xp:this.getAsObject><![CDATA[#{javascript:var rtitem:NotesRichTextItem = document1.getDocument().createRichTextItem("rtfield");
rtitem.appendText(value);
return null;}]]></xp:this.getAsObject>
</xp:customConverter>
</xp:this.converter>
</xp:inputTextarea>
注意:如果希望使用文本区域更新富格文本字段,则需要在
getaObject
中编写附加代码。将值存储为富格文本的目的是为了避免纯文本项的大小限制吗?或者,您打算将未格式化文本存储为格式化数据类型,还有其他原因吗?这是由于大小限制的需要,据我所知,我只能通过mime类型来实现。我用它来标记内联图像中的文本,其中图像是嵌入数据的,这里需要一些澄清。是否能够使用querysave或custom converter实现这一点?将值存储为富文本的目的仅仅是为了避免纯文本项的大小限制?或者,您打算将未格式化文本存储为格式化数据类型,还有其他原因吗?这是由于大小限制的需要,据我所知,我只能通过mime类型来实现。我用它来标记内联图像中的文本,其中图像是嵌入数据的,这里需要一些澄清。使用querysave或自定义转换器可以实现这一点吗?谢谢Naveen。我曾希望可以通过更改渲染器或DojoType来完成,因为我知道您可以切换到dojo编辑器。必须是要切换到无的设置。在没有弄清楚如何做到这一点的情况下,我将采用你的方法。干杯,我最终没有像你那样为我工作。在首次保存之前无法获取后端文档。是在正确的方向,因为它解决了使用转换器的想法,连同一个帖子从每。如果您将getaObject更改为#{javascript:com.ibm.xsp.http.MimeMultipart.fromHTML(value)},那么它对于新文档和现有文档来说就像一个魅力一样,谢谢Naveen。我曾希望可以通过更改渲染器或DojoType来完成,因为我知道您可以切换到dojo编辑器。必须是要切换到无的设置。在没有弄清楚如何做到这一点的情况下,我将采用你的方法。干杯,我最终没有像你那样为我工作。在首次保存之前无法获取后端文档。是在正确的方向,因为它解决了使用转换器的想法,连同一个帖子从每。如果您将getaObject更改为#{javascript:com.ibm.xsp.http.MimeMultipart.fromHTML(value)},那么它对于新文档和现有文档来说就像一个魅力