【问题标题】:Can I wrap <tr> in something that doesn't influence table layout? (JSF2.0)我可以将 <tr> 包装在不影响表格布局的东西中吗? (JSF2.0)
【发布时间】:2010-12-13 17:45:50
【问题描述】:

我有一个&lt;table&gt;,里面有一些&lt;tr&gt;s。只要没有&lt;tr&gt; 包含在&lt;div&gt;&lt;span&gt; 中,所有内容都会对齐。

我必须包装它,因为我使用的是 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>

我需要“包装”,因为当不呈现内部 panelGroup 时,我需要一些 HTML 中的 ID 用于 ajax。我还需要内部&lt;h:panelGroup&gt;,因为我必须在某处使用JSF rendered 属性,而我不能在&lt;tr&gt; 上使用它。

问题是这样一来,这一行被包裹在&lt;span&gt; 中,并且不再与其他行对齐。 &lt;div&gt; 也一样。

【问题讨论】:

    标签: html jsf-2


    【解决方案1】:

    试试 、

    已编辑

    示例如下:

    <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 - 您可以用于对常用行进行分组,等等

    【讨论】:

    • 我不明白。您能否提供一些带有上述标签的 JSF sn-p?
    • @amorfis - 只是附加了要在 ajax 中使用的带有 id 的 tad 示例
    【解决方案2】:

    不要像这样混合 JSF 和 HTML 标签。您到处都在破坏抽象,我敢打赌您永远不会以这种方式获得有效的 HTML(这就是您的布局中断的原因)。

    使用&lt;h:panelGrid&gt; 代替HTML 表格并将rendered 属性放在该行的各个组件上。

    至于身份证,你需要它做什么?如果是 JSF 支持的 Ajax,我认为您不能只重新渲染表格的一行。如果您正在执行“手动”Ajax,您可以使用panelGridrowClasses 属性为特定呈现的&lt;tr&gt; 提供一个不同的类。

    【讨论】:

    • ID 用于 JSF ajax。您可以重新渲染单行,这里没问题。我去看看&lt;h:panelGrid&gt;,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多