如何在p:column header中放入自定义内容,如换行符。

问题描述 投票:5回答:4

在我的申请中,我有以下内容 <p:dataTable>:

data table

第2栏的标题花费了太多空间。因此,我想在第2栏和第3栏之间加一个分栏。Number of &amp。Sessions 并且还将表头垂直对齐。我试着减小列的宽度,但并没有自动导致断行。

此外,由于表头名称是从 l10n.properties 文件,我也试着把它设置为 Number of /n Sessions 不过 /n 被打印成一个普通的字符串。

更新。 我还尝试将属性设置为 Number of <br/> Sessions. 但是,在生成的HTML代码中,。<br/> 消失了,而表格看起来和上面一模一样。

如果您能给我一个建议,我将非常感激。

最佳的问候。

css primefaces jsf-2 line-breaks
4个回答
22
投票

首先,你需要删除 headerText 属性,并在其中添加一个头面。

/*  no_of_sessions = Number of &#10; Sessions  */
<p:column ... >
    <f:facet name="header">
        <h:outputText value="#{l10n.no_of_sessions}" 
                  escape="false" style="white-space:pre-line;" />
    </f:facet>
    ...
</p:column>

这个 escape="false" 是相关的,所以html被转义,然后你可以把任何你想要的东西在那里。如果你只是想给内容加个样式,那就不需要了。


6
投票

试试这个

<f:facet name="header">
    <h:outputLabel value="Number of&#10;Sessions" style="white-space:pre;"/>
</f:facet>

如果使用属性文件中的 "会话数",请在你的属性文件中尝试以下内容......

myString = Number of \
           Sessions

0
投票

如果是CSS的话,你可以在你的属性文件中加入一个 <br/> 在'Number of'后面的标签,我刚刚看到你编辑的帖子。

你在Firebug中做的实际上是 "编辑文本",但是,你需要做的是 "右键",然后 "编辑HTML"。这样,当你插入标签时,文字就会断裂并转移到下一行。


0
投票

最简单的方法是在样式属性中添加white-space:preline,请看下面的代码。

<p:column headerText="Number of Sessions" style="white-space:pre-line;width:50px;">
     <h:outputText value="#{value}"></h:outputText>
</p:column>
© www.soinside.com 2019 - 2024. All rights reserved.