在rich:dataTable中,数据表行的背景颜色消失

时间:2016-10-19 06:39:35

标签: jquery css jsf richfaces

我在项目中使用了jsf richfaces。我必须在用户单击特定行后突出显示richfaces数据表中的行。我使用jquery突出显示该行。但是我们单击行后,行的背景颜色消失了。如果我给了jQuery.noConflict();背景颜色仍然存在,但页面没有渲染,动作标签不起作用。任何人都可以帮我解决这个问题。

数据表列值:

<rich:dataTable value="#{myBean.list}" var="bean" >
<rich:column>
<a4j:commandLink value="#{bean.id}" render="info,tablepanel" action="#
{myBean.save(bean.id)}" onclick="changeBackground(this)" />
</rich:column>  
</rich:dataTable>

Jquery的:

<script>
function changeBackground(element){
/* jQuery.noConflict(); */
jQuery(element).parents('tr:first').addClass('backgroundRed');
 }
</script>

CSS:

<style>
.backgroundRed {
color: #555658;
background-color: yellow;
cursor : pointer;
}
</style>

提前致谢..

1 个答案:

答案 0 :(得分:0)

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

<rich:dataTable value="#{myBean.list}" var="bean" >
     <rich:column>
         <a4j:commandLink value="#{bean.id}" render="info,tablepanel" action="#/>
     </rich:column>  
     <a4j:support event="onRowClick" oncomplete="highlightSingleRow(this)"/>
</rich:dataTable>

使用Javascript:

jQuery.noConflict();
function highlightSingleRow(col) {
    jQuery(col).parent().parent().find('tr').removeClass('highlight-row');
    jQuery(col).parent().addClass('highlight-row');
}

CSS:

.highlight-row {
    background-color: yellow;
    cursor : pointer;
}