Как установить ширину для столбца, обработанного dataTable в JSF?

JSF h: ширина исправления тега столбца

Я пробовал этот путь, но я не мог заставить это работать. С отображаемым HTML я не вижу атрибута width для заголовка или для строк dataTable. Я использую JSF 1.2 без каких-либо компонентов libs. В чем может быть проблема?

Ответы

Ответ 1

Этот связанный ответ честно не имеет смысла для меня. <h:column> как и в реализации JSF по умолчанию не поддерживает эти атрибуты вообще. Это далеко за пределами меня, почему он получил 6 голосов и отмечен признанным. Это будет невежество или совпадение (возможно, и вопросник, и ответ используют реализацию JSF. Я не знаю, у кого есть средство визуализации для <h:column>, которое автоматически преобразует все неизвестные атрибуты в реальные атрибуты HTML, но, по крайней мере, стандартный JSF RI/Mojarra этого не делает, возможно, MyFaces?).

Тем не менее, чтобы разделить столбцы отдельно, вам нужно использовать атрибут columnClasses <h:dataTable>. Он принимает компаразированную строку имен классов CSS, которая впоследствии будет применяться к элементам <td>, сгенерированным с помощью <h:column>.

<h:dataTable columnClasses="column1,column2,column3">
    <h:column>...</h:column>
    <h:column>...</h:column>
    <h:column>...</h:column>
</h:dataTable>

Это будет выглядеть примерно так:

<table>
    <tbody>
        <tr>
            <td class="column1">...</td>
            <td class="column2">...</td>
            <td class="column3">...</td>
        </tr>
    </tbody>
</table>

Чтобы указать ширину, просто примените CSS.

.column1 { width: 200px; }
.column2 { width: 100px; }
.column3 { width: 50px; }