2010-09-17 133 views
1

我有标准的页面布局:header + 2 blocks(left and right)。代码低于panelGroup弄乱了我的布局

<h:panelGroup rendered="#{false}"> 
    <div id="center_header"> 
     <h:outputText value="#{ScholarActiveHub.selectedGroup.groupName}"/> 
    </div> 

    <div id="center_left"> 

    </div> 

    <div id="center_right"> 
     <h:dataTable value="#{ScholarActiveHub.groupMembers}" var="item" style="margin-right: 10px;"> 
      <h:column> 
       <h:outputText value="#{item}"/> 
      </h:column>      
     </h:dataTable> 
    </div>  
</h:panelGroup> 

我想一下子打开和关闭这些<div>标签,所以我嵌套他们panelGroup内。现在它打开和关闭这些<div>好吧,但布局是一团糟。任何解决方案

回答

3

这不应该发生。在你的代码示例中,<h:panelGroup>不应该渲染任何东西。但是如果它包含一个应该以HTML结尾的属性,如id,那么它将呈现一个<span>元素。检查网页浏览器中生成的HTML输出。这一切看起来不错吗?你的CSS是否考虑到了这一点?也许你希望它也是一个块元素?如果您将layout="block"添加到<h:panelGroup>那么它将呈现<div>而不是<span>。这可能是更多你想要的。

+0

'layout =“block”'正是我想要的。 Srry,'rendered =#{false}'只是为了演示我希望如何让所有东西在同一时间打开和关闭。所以'panelGroup'总是会产生'',除非你把'layout = block',对吗? – 2010-09-17 04:17:17

+0

仅限于指定以HTML结尾的属性。在你的代码片段中没有(可能你简化了它?),所以它不会产生任何东西。但是,如果你有一个'id','styleClass'等,那么它将生成一个'span'。 – BalusC 2010-09-17 10:27:01

+0

这是有道理的。我在我的JSF代码中有'style'属性。谢谢 – 2010-09-17 14:36:48