2

I do not know if there is anything specific with styling JSF datatable but I can not get the row height changed.

Here is my datatable:

<h:dataTable value="#{myBean.myValue}"
             rowClasses="dt_row"
             var="o">


</h:dataTable>

Here is my css dt_row class:

.dt_row {
    height: 10px;
}

But when the rows is generated the height remains the same no matter what values I specify in my css class. The source of generated page looks like this and it seems ok:

<tr class="dt_row">

Any ideas?

Here is my whole table:

    <h:dataTable value="#{searchBean.searchResult.concordances}"
                 styleClass="table"
                 var="concordance">

        <h:column>
            <pre>#{concordance.left}</pre>
        </h:column>

        <h:column>
            <pre style="color: blue;">#{concordance.middle}</pre>
        </h:column>

        <h:column>
            <pre>#{concordance.right}</pre>
        </h:column>

    </h:dataTable>
4

2 回答 2

5

HTMLtr没有高度属性。可以为 定义高度td

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>DataTable Row Height Sample</title>
        <style type="text/css">
            table {
                width: 200px;
            }
            table tr {
                color: darkorange;
            }
            table tr td {
                height: 80px;
            }
        </style>
    </h:head>
    <h:body>
        <h:form id="myForm">
            <h1>Show data</h1>
            <!-- check that I'm using styleClass, not rowClass -->
            <h:dataTable id="dataTable" var="data" value="#{datatableBean.lstData}"
                border="1" styleClass="table">
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="ID" />
                    </f:facet>
                    <h:outputText value="#{data.id}" />
                </h:column>
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Value" />
                    </f:facet>
                    <h:outputText value="#{data.value}" />
                </h:column>
            </h:dataTable>
        </h:form>
    </h:body>
</ui:composition>

更新:

我已经在 Chrome 18 和 IE 9 中对此进行了测试。我将包含仅更改 td 高度的表格图像:

高度:30px;

在此处输入图像描述

高度:50px;

在此处输入图像描述

高度:10px;

在此处输入图像描述

如您所见,行高发生了变化。也许您正在 Internet Explorer 中进行测试并且您的样式更改没有更新。要更改其行为,请转到工具/ Internet 选项,然后在浏览历史记录部分中选择设置,将出现一个弹出窗口,在临时 Internet 文件部分中检查第一个选项现在每次访问网页时选择确定关闭弹出窗口,然后再次确定关闭 Internet 选项,更新您的网站,您可以看到更改。

于 2012-05-04T23:13:05.843 回答
0

尝试这个 :

<p:dataTable id="table" >
<p:column id="id" headerText="#{message.label_id}" style="height:10px">
</p:column> 

于 2016-08-30T07:24:33.303 回答