Jsf 更改rich:dataTable中行的背景色

Jsf 更改rich:dataTable中行的背景色,jsf,richfaces,Jsf,Richfaces,我在rich:datatable中有一行,它的一列中有一个链接。单击此按钮后,我需要更改所选行的背景色。我怎样才能做到这一点 您可以使用以下代码执行此操作: <a4j:form id="myfrm"> <rich:dataTable id="myTbl" value="#{myBean.tblData}" var="tblData"> <rich:column> <f:facet name="header">Col1<

我在rich:datatable中有一行,它的一列中有一个链接。单击此按钮后,我需要更改所选行的背景色。我怎样才能做到这一点

您可以使用以下代码执行此操作:

<a4j:form id="myfrm">
<rich:dataTable id="myTbl" value="#{myBean.tblData}" var="tblData">
    <rich:column>
        <f:facet name="header">Col1</f:facet>
        <h:outputText value="#{tblData}" />
    </rich:column>
    <rich:column>
        <f:facet name="header">Col2</f:facet>
        <h:outputText value="#{tblData}" />
    </rich:column>
    <a4j:support event="onRowClick" oncomplete="highlightSingleRow(this)"/>
</rich:dataTable>
</a4j:form>
CSS:

上面的示例将在单击该行时高亮显示该行

要在链接上执行此操作,您可以执行以下操作:

<rich:dataTable id="myTbl" value="#{myBean.tblData}" var="tblData">
    <rich:column>
        <f:facet name="header">Col1</f:facet>
        <h:outputLink onclick="highlightSingleRow(this)" value="#">
            <h:outputText value="link" />
        </h:outputLink>
    </rich:column>
    <rich:column>
        <f:facet name="header">Col2</f:facet>
        <h:outputText value="#{tblData}" />
    </rich:column>
</rich:dataTable>

在链接上添加onclick方法:

<rich:column>
  <h:outputLink onclick="changeBackground(this)" value="#">
    <h:outputText value="link" />
  </h:outputLink>
</rich:column>
<rich:dataTable id="myTbl" value="#{myBean.tblData}" var="tblData">
    <rich:column>
        <f:facet name="header">Col1</f:facet>
        <h:outputLink onclick="highlightSingleRow(this)" value="#">
            <h:outputText value="link" />
        </h:outputLink>
    </rich:column>
    <rich:column>
        <f:facet name="header">Col2</f:facet>
        <h:outputText value="#{tblData}" />
    </rich:column>
</rich:dataTable>
jQuery.noConflict();
function highlightSingleRow(lnk) {
    jQuery(lnk).parent().parent().parent().find('tr').removeClass('highlight-row');
    jQuery(lnk).parent().parent().addClass('highlight-row');
}
<rich:column>
  <h:outputLink onclick="changeBackground(this)" value="#">
    <h:outputText value="link" />
  </h:outputLink>
</rich:column>
<script>
    function changeBackground(element){
      jQuery(element).parents('tr:first').addClass('backgroundRed');
    }
</script>
.backgroundRed {
    color: #555658;
    background-color: red;
}