我有一些弹出窗口,用于少数选项卡,弹出窗口使用dialogContainerId
和dialogId
等标签中的一些参数。
我有“选择项目”菜单和靠近它的“刷新项目”按钮。因此,当用户点击按钮时,我想获得选择菜单的新项目列表。选择菜单按预期工作,但“刷新”按钮不工作。我确信刷新按钮上的监听器运行良好,如果新项目出现在数据库中,可以看到更新的项目列表。但是选择菜单不会更新。好像render
上的f:ajax
属性似乎不起作用或者ID不匹配。我查了一下页面,一无所获。 Ids看起来很好。我尝试了常量ID,并试图将id移动到父标记,但总是得到相同的结果 - 选择菜单不会重新渲染。
有人有想法或建议吗?提前谢谢。
这是源页面:
<ui:composition>
<h:panelGroup id="#{dialogContainerId}">
<rich:popupPanel id="#{dialogId}" autosized="true" modal="true" domElementAttachment="parent">
<h:panelGrid id="#{dialogId}commonControls" columns="3">
<!-- more input tags -->
<h:outputLabel value="Create dialog" />
<h:panelGroup>
<rich:select id="#{dialogId}expenseItem" value="#{expenseItemInstanceBean.selectedExpenseItemId}"
selectFirst="true" required="true" requiredMessage="Required">
<f:selectItems value="#{expenseItemInstanceBean.expenseItemsAsList}"
var="item" itemValue="#{item.id}" itemLabel="#{item.name}" />
</rich:select>
<h:graphicImage library="icons" name="refresh_16x16.gif" title="Refresh">
<f:ajax event="click" execute="@this" render="#{dialogId}expenseItem"
listener="#{expenseItemInstanceBean.refreshExpenseItems()}" />
</h:graphicImage>
</h:panelGroup>
<h:messages for="#{dialogId}expenseItem" />
<!-- more input tags -->
</h:panelGrid>
<!-- button tags tags -->
</rich:popupPanel>
</h:panelGroup>
</ui:composition>
部分渲染的html页面:
<td>
<div class="rf-sel" id="idForm:wrkSchedDialogexpenseItem">
<!-- here is my list and additional autogenerated jsf tags -->
</div>
<img id="idForm:j_idt42" src="/logistics-web/javax.faces.resource refresh_16x16.gif.xhtml?ln=icons"
alt="" style="vertical-align: bottom" title="Refresh"
onclick="mojarra.ab(this,event,'click','@this','idForm:wrkSchedDialogexpenseItem');return false"
class="linkLikeCursor" name="idForm:j_idt42"/>ev
</td>