如何在Primefaces中为p:片段赋予样式?

时间:2014-09-23 10:54:40

标签: css primefaces

这是一个简单的问题,是否可以为组件p:fragment提供样式?

文档(5.0)中指定的style没有styleClass / class / p:fragment属性(尽管我的IDE建议我使用{{1}基于库但它不起作用)。

基本上我想要做的是将显示更改为:

class

因为默认情况下,组件会呈现为display: inline; div

我知道我可以使用display: block;属性并给它一些风格,但我不想要这个解决方案因为我有多个片段而且会非常难看。

2 个答案:

答案 0 :(得分:1)

您可以像我的示例

那样具体说明您的CSS
        <style>
            div[id$="-fragment"]{
                background-color: red;
            }
        </style>
        <h:form>                
            <h:panelGrid columns="2" cellpadding="5">
                <p:outputLabel for="ignored" value="Required" />
                <p:inputText id="ignored" required="true" />
            </h:panelGrid>

            <p:fragment autoUpdate="true" id="first-fragment">
                <h:panelGrid columns="4" cellpadding="5">
                    <p:outputLabel for="txt" value="Text Value:" />
                    <p:inputText id="txt" value="#{basicView.text}" />
                    <p:commandButton value="Submit"/>
                    <h:outputText value="#{basicView.text}" />
                </h:panelGrid>
            </p:fragment>
            <p:fragment autoUpdate="true" id="second-fragment">
                <h:panelGrid columns="4" cellpadding="5">
                    <p:outputLabel for="txt2" value="Text Value:" />
                    <p:inputText id="txt2" value="#{basicView.text}" />
                    <p:commandButton value="Submit"/>
                    <h:outputText value="#{basicView.text}" />
                </h:panelGrid>
            </p:fragment>
        </h:form>

希望得到这个帮助。

答案 1 :(得分:0)

Primefaces的片段组件用于在子代组件触发ajax请求时定义自动部分处理和更新部分,它不是显示/样式内容的组件。

如果您不需要自动处理功能,请使用facelet的ui:fragment组件来满足您的渲染需求,并将其内容放在div中,您可以根据需要设置样式。

Hello
<ui:fragment>
    <div style="display: inline;">Hello</div>
</ui:fragment>
Hello