我有一个表格,<a:commandLink>
其中打开<rich:modalPanel>
了有关所选项目的附加信息。它使用 reRendering modalPanel 的内部<a:outputPanel>
单击 commandLink 来工作。现在的问题是我所有的 facelets 在重新渲染后都变成了常用的输入项(即简单的选择而不是组合框)。有没有办法让服务器将 ui 信息添加到重新渲染的结果中?
UPD我在日志中看到以下消息
10:55:30,483 INFO [facelet] Facelet[/account/registration.xhtml] 在上午 10:55:30 被修改,在上午 10:54:36 应用了刷新组件
UPD2该问题仅发生在替换通常选择的组件上,例如 selectOneMenu 或 selectonelistbox。
代码示例:
<rich:modalPanel id="fieldPropertiesPanel" >
<f:facet name="header">
<h:outputText value="Customize Field" />
</f:facet>
<f:facet name="controls">
<h:outputLink value="#"
onclick="#{rich:component('fieldPropertiesPanel')}.hide(); return false;">
X
</h:outputLink>
</f:facet>
<rich:panel id="fieldPropertiesContent">
<s:decorate styleClass="itemType" template="/layout/edit.xhtml">
<h:selectOneMenu value="#{accountHome.currFieldType}">
<s:selectItems itemLabel="#{fieldType}" itemValue="#{fieldType}"
label="#{messages['ProjectFieldType_enum.'.concat(fieldType)]}"
value="#{accountHome.projectFieldTypes}" var="fieldType" />
</h:selectOneMenu>
</s:decorate>
</rich:panel>
</rich:modalPanel>
和调用 commandLink
<a:commandLink value="Edit" oncomplete="Richfaces.showModalPanel('fieldPropertiesPanel');"
reRender="fieldPropertiesContent" />