primefaces richtext编辑器内联可见性故障:
如果单击commandButton“打开/清除”(仅用于清除bean中的编辑器值),则编辑器将再次可见。
<div id="multilanguage-descriptions">
<p:inplace styleClass="ui-multilanguage-description"
id="ajaxInplace" widgetVar="inplaceeditorWidget" editor="true"
toggleable="true" label="Edit" effect="slide" effectSpeed="fast">
<p:editor widgetVar="editorWidget" rendered="true"
id="editor" value="#{editorBean.value}" width="600"/>
<p:commandButton process="@this"
ajax="true" value="Open/Clear" update="editor"
id="clearButton" action="#{editorBean.clearValue()}"/>
</p:inplace>
</div>
答案 0 :(得分:1)
因为我遇到了同样的问题,因为我与我的一天没有任何关系(是的,它花了我一整天)我想出来了(至少对我而言)。
问题在于正在更新的编辑器的容器(inplace元素)。这会导致编辑器元素发生更新。编辑器有一个很大的问题,那就是在渲染时它的大小是“硬编码的”。由于编辑器在更新发生时被隐藏,因此编辑器无法正确呈现。
我已经创建了一个示例来演示问题:
<h:head>
</h:head>
<body>
<h:form>
<p:commandButton onclick="inplace.show()" icon="ui-icon-pencil" value="edit"/>
<p:inplace widgetVar="inplace" >
<p:editor id="editor"/>
<p:commandButton onclick="inplace.cancel()" icon="ui-icon-cancel"
value="cancel" />
<p:commandButton onclick="inplace.save()" icon="ui-icon-disk" value="save" />
</p:inplace>
</h:form>
</body>
当你运行这个例子时,你可以点击编辑按钮,这个东西按预期工作。但是,如果单击取消按钮(更新发生),然后再次单击编辑,则不会显示编辑器。
'解决方案'是强制更新编辑器。在示例中,您可以通过向编辑按钮添加更新来执行此操作:
<p:commandButton onclick="inplace.show()" icon="ui-icon-pencil" value="edit" update="editor"/>
由于更新而显示编辑器时有一点延迟,但是它比没有编辑器更好。