0

我正在使用以下代码并尝试使每一行都可点击并设置一些最重要的事件。

<table width="100%" class="TableSpace">

<ui:repeat var="damageinfo"
                            value="#{DamageDetails2.damageInfoAll}" varStatus="status">
    <h:commandLink>
        <tr class="row1 lineBorder" onclick="alert('Hello')">
            <td height="40">
                <h:outputText
                        value="#{damageinfo.damageID}" styleClass="LabelClass">
                </h:outputText>
            </td>
            <td height="40">
                <h:outputText
                        value="#{damageinfo.damageName}" styleClass="valueClass">
                </h:outputText>
            </td>
        </tr>
        <f:setPropertyActionListener target="#{carDetails.rootImage}"
                                    value="#{carDetails.carUrl2}" />
        <f:setPropertyActionListener target="#{carDetails.view}"
                                    value="#{carDetails.viewDetails['carUrl2']}" />
        <f:ajax event="action" render="ViewId" />
    </h:commandLink>
</ui:repeat>

</table>

但它不起作用。这是如何引起的,我该如何解决?

4

1 回答 1

1

这会生成无效的 HTML。<a>在 .周围有一个元素是非法的<tr>。浏览器行为未指定。根据所使用的网络浏览器品牌/版本的宽松程度,它可能会起作用,也可能不起作用,或者可能不会按照您想要的方式起作用。由于 JSF 最终只生成 HTML,因此它确实无法发挥任何魔力来使其按您想要的方式工作。

要么将 JSonclick处理程序放入<tr>元素中,要么放入<h:commandLink><td>,或者使用允许行选择的 PrimeFaces 之类的 3rd 方组件库,另请参见此展示示例

也可以看看:

于 2012-07-16T13:49:19.203 回答