我会非常感谢一些关于如何处理上述问题的专家意见。大体上它是这样分解的: 我已经实现了一个动态创建的rich:panelMenu
,并且根据RichFaces演示,将a4j:outputPanel
放在正确的位置以便包含当用户单击菜单中的项目时出现的内容。代码是:如何顶级丰富:panelMenu丰富:outputPanel与h:panelGrid?
<h:form>
<a4j:region id="logs">
<h:panelGrid columns="2" border="0" style="width: 100%; margin: auto;">
<rich:panel header="Menu">
<rich:panelMenu mode="ajax" style="width: 300px">
<!-- feed iteration -->
<c:forEach items="#{MyBacking.panelNodes}" var="map">
<rich:panelMenuGroup label="#{map.key}"
style="padding-left: 10px;">
<c:forEach items="${map.value}" var="entry">
<rich:panelMenuItem label="#{entry}"
style="padding-left: 20px;"
action="#{MyBacking.updateCurrent}">
<f:param name="current" value="#{entry}" />
</rich:panelMenuItem>
</c:forEach>
</rich:panelMenuGroup>
</c:forEach>
</rich:panelMenu>
</rich:panel>
<rich:panel header="Content">
<a4j:outputPanel ajaxRendered="true" layout="inline"
style="vertical-align: top">
<h:outputText value="#{MyBacking.current}" id="current" />
</a4j:outputPanel>
</rich:panel>
</h:panelGrid>
</a4j:region>
</h:form>
[注意a4j:outputPanel
有CSS尝试和垂直对齐到顶部,但含rich:panel
一直是我的重点主要表现]
的问题是:
1:我就像两个组件要水平对齐,所以两者的顶部都是水平的。我使用h:panelGrid
来尝试和控制菜单和outputPanel,但即使它呈现表格,vertical-align
似乎也不起作用。
我认为它可能最终被应用于错误的地方,因此不起作用(例如包含跨度 - 虽然理论上在另一个元素内部的元素应该打开以由该属性控制)。
<h:panelGrid columns="2" border="0" style="width: 100%; margin: auto;">
也没有工作。我至少在正确的轨道上?由于右侧面板将包含文件的内容,因此它将比面板菜单长很多。我需要防止panelMenu沿着outputPanel的左侧滑动(现在正在发生的垂直对齐的中间)。
2:我想用px修正panelMenu
的宽度,但是如果菜单最终包含一个太长的条目,我注意到这个溢出看起来被固定在隐藏处。我似乎无法获得overflow: auto
的工作。我只需要一个水平。在这种情况下滚动条。
3:panelGrid的必须是100%它包含在我听过的h:panelGrid
width:100%
造成的问题,所以如果这仍然是我怎样才能得到它周围的情况下选项卡的宽度。?
我希望这是有道理的。我已经使用了一段时间的css,但是迫使我想要射入RF组件比我想象的更加棘手。
非常感谢