Можно ли завернуть <tr>во что-то, что не влияет на макет таблицы? (JSF2.0) - PullRequest
0 голосов
/ 13 декабря 2010

У меня есть <table>, а в нем несколько <tr> с.Все выровнено, пока ни один <tr> не обернут в <div> или <span>.

Я должен обернуть его, потому что я использую JSF, и мне иногда нужно визуализировать этот ряд, а иногда нет.Код:

<table>
<!-- some other TRs -->
<h:panelGroup id="wrapping">
  <h:panelGroup rendered="#{bean.render}">
    <tr>
      <th>
        Some label
      </th>
      <td>
        <h:inputText value="#{bean.value}" />
      </td>
    </tr>
  </h:panelGroup>
</h:panelGroup>
</table>

Мне нужна «обертка», потому что, когда внутренняя группа Panel не отображается, мне нужен некоторый идентификатор в HTML для ajax.Мне также нужен внутренний <h:panelGroup>, потому что мне нужно где-то использовать атрибут JSF rendered, и я не могу использовать его на <tr>.

Проблема заключается в том, что этот ряд заключен в <span>и он больше не выровнен с другими строками.То же самое о <div>.

Ответы [ 2 ]

1 голос
/ 13 декабря 2010

Попробуйте

, ,

EDITED

Вот пример:

<table>
<thead id="headForAjax"> <!-- note on this-->
<!-- some other TRs -->
<h:panelGroup id="wrapping">
  <h:panelGroup rendered="#{bean.render}">
    <tr>
      <th>
        Some label
      </th>
      <td>
        <h:inputText value="#{bean.value}" />
      </td>
    </tr>
  </h:panelGroup>
</h:panelGroup>
</thead>
</table>

thead используется длястроки заголовка группы, tbody - вы можете использовать для группировки общих строк и т. д.

0 голосов
/ 14 декабря 2010

Не смешивайте теги JSF и HTML подобным образом. Вы разбиваете абстракции повсюду, и я уверен, что таким образом вы никогда не получите действительный HTML (именно поэтому ваш макет ломается).

Вместо таблицы HTML используйте <h:panelGrid> и поместите атрибут rendered в отдельные компоненты этой строки.

Что касается удостоверения личности, зачем оно вам? Если это для AJAX, поддерживаемого JSF, я не думаю, что вы можете перерисовать только одну строку таблицы. Если вы выполняете «ручной» Ajax, вы можете использовать атрибут rowClasses panelGrid, чтобы присвоить одному конкретному визуализированному <tr> отдельный класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...