【问题标题】:How to align button horizontally in primefaces column?如何在primefaces列中水平对齐按钮?
【发布时间】:2023-04-04 15:40:01
【问题描述】:

我的一个 primefaces UI 出现布局问题。 我基本上有一个包含在 DIV 中的表格,代码如下。最后一列应该包含我想要水平排列的按钮 所以我将它们包含在一个 panelGroup 中

<div style="overflow: auto; height: 300px;">
    <p:dataTable >
        <p:column headerText="Column 1">
        </p:column>
        .
        .
        <p:column headerText="Actions">
            <h:panelGroup layout="span">
                <p:commandButton value="Edit" icon="ui-icon-scissors" />
                <p:commandButton value="Delete" icon="ui-icon-trash" />
            </h:panelGroup>
        </p:column>
    </p:dataTable>
</div>

但是,当它们被渲染时,按钮是垂直排列的。查看 HTML 代码,我注意到按钮都包含在 div 中 所以这就是为什么它们之间有一个换行符。

如何解决这个问题?

谢谢

【问题讨论】:

  • 您的 PrimeFaces 版本是多少?在 3.4.1 上,使用您的代码将它们包装到同一个 div 中。
  • 我用另一种 h:panelGroup 解决方案更新了我的答案。

标签: java jsf-2 primefaces


【解决方案1】:

&lt;h:panelGrid/&gt;&lt;p:panelGroup/&gt; 包装它们。这将呈现一个table,在同一表格行中有两个表格单元格(因此它们必须出现在同一行中):

h:panelGrid:

<h:panelGrid columns="2">
    <p:commandButton value="Edit" icon="ui-icon-scissors" />
    <p:commandButton value="Delete" icon="ui-icon-trash" />
</h:panelGrid>

h:panelGroup:

如果您使用 h:panelGroup 而不使用样式、styleClass 或 id 属性,则 layout 属性无效,并且不会在您的按钮周围呈现额外的 html。无论如何,添加样式:

<h:panelGroup style="white-space: nowrap">
    ....
</h:panelGroup>

使它们水平对齐,无论您使用哪个 layout 值。

【讨论】:

  • 我认为最后一个panelGroup 没有正确关闭。应该是...&lt;/h:panelGroup&gt;
  • 谢谢,9 年后修复。 :)
  • Java 永远不会太晚
猜你喜欢
  • 2016-04-07
  • 2014-04-20
  • 1970-01-01
  • 2020-10-08
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多