【问题标题】:JSF h:column tag fix widthJSF h:列标签固定宽度
【发布时间】:2008-11-28 18:33:23
【问题描述】:

有人可以告诉我如何使用 JSF 修复数据表中列的宽度吗?

我的代码目前是:

<h:column>
    <f:facet name="header">
        <h:outputText value="Data Field 1" />
    </f:facet>
    <h:commandLink id="dataLink" action="#{pc_SearchResultsFragment.setField1}">
        <h:outputText value="#{(qi.data1 != null) ? '' : qi.data1}"/>                 
    </h:commandLink>
</h:column>

谢谢!

【问题讨论】:

    标签: jsf


    【解决方案1】:

    通常你在 dataTable 上下文中使用 h:column。

    您可以做的是在 CSS 中设置宽度。如果你有代码:

    <h:dataTable value="#{action.items}" var="name" 
    styleClass="tableClass" columnClasses="first,second">
    

    然后在 CSS 文件中执行以下操作:

    .first {
    
       width: 250px;
    
    }
    

    假设您有 2 列。

    查看dataTable属性here,也可以找到各种CSS相关的属性。

    【讨论】:

      【解决方案2】:

      我遇到了这个问题,我可以通过使用 h:datatable 的 columnclasses 属性来解决它。请参考标签库。

      JSF DataTable

      【讨论】:

        【解决方案3】:

        如果您使用的是 JSF 2.2,则可以使用其 pass-through 功能解决此问题,并使用它将 style 属性从服务器端 XHTML 传递到客户端 html

        像这样:

        <h:column pt:style="width:20px;text-align:center;"></h:column>
        

        已解决:

        <td style="width:20px;text-align:center;"></td>
        

        不要忘记添加xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" 并同时使用所有其他 jsf 命名空间

        【讨论】:

        • 请说明这适用于哪个 JSF 版本 1.2? 2.0?
        • 我正在使用 JSF 2.0
        • 确定吗?您正在使用 jsf 2.2 命名空间,而 passthrough 属性仅在 jsf 2.2 中引入
        【解决方案4】:
        <h:column>
            <f:facet name="header">
                <h:outputText value="Data Field 1" />
            </f:facet>
            <h:commandLink id="dataLink" action="#{pc_SearchResultsFragment.setField1}">
                <h:outputText value="#{(qi.data1 != null) ? '' : qi.data1}"/>                     
            </h:commandLink>
            <%-- <f:attribute name="width" value="20" /> fixed width --%>
            <%-- or --%>
            <%-- <f:attribute name="width" value="20%" /> percentage --%>
        
            <%-- also available (not a complete list, just some of the more
                 common supported attributes) --%>
            <%-- <f:attribute name="align" value="left" /> --%>
            <%-- <f:attribute name="height" value="20" /> --%>
            <%-- <f:attribute name="nowrap" value="true" /> --%>
            <%-- <f:attribute name="valign" value="top" /> --%>
            <%-- <f:attribute name="bgcolor" value="red" /> --%>
            <%-- <f:attribute name="style" value="color:White;" /> --%>
        </h:column>
        

        【讨论】:

        • 您好,我试过这种方式,但无法正常工作。使用呈现的 HTML ,我看不到 Header 或 dataTable 行的宽度属性。我正在使用没有任何组件库的 JSF 1.2。任何想法 ?可能是什么问题?
        • 使用了@Michiel de Mare 链接 :)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-24
        • 2010-12-10
        • 2012-03-09
        • 2017-05-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多