我正在尝试在我的jsf数据表上进行样式设置,如下所示:
它在页面首次加载时工作。但是当我使用 ajax 调用对列进行排序时(如前面显示的链接中所述),样式消失了。如果我刷新,样式就会回来。
如果我把我的范围放在请求 scop 中。样式正在工作,但函数排序不再工作。我不太明白的事情。(有兴趣解释这种现象...
所以我理解jquery很担心,但我找不到一种方法来告诉:"嘿,当我对数据表值进行排序时,不要让样式消失"
也许与重新渲染有关?
栏杆,知道吗? :)
非常感谢大家,
有好的一天。
<h:form id="formSort" >
<a4j:outputPanel id="ajaxOutputPanel" layout="block" ajaxRendered="true">
<rich:dataTable id="customList" style="width:70%;margin-left:auto;margin-right:auto;" var="c" value="#{participant.listParticipant}" rendered="#{not empty participant.listParticipant}"
styleClass="stable"
rowClasses="order-table-odd-row,order-table-even-row">
<f:facet name="header"><h:outputText value="PARTICIPANTS" /></f:facet>
<rich:column>
<f:facet name="header"> <h:outputText value="ID DE L'ETUDE" /></f:facet>
<h:outputText value="#{c.id_study}" />
</rich:column>
<rich:column sortBy="#{c.enrollment_date}" id="enrollment_date" comparator="#{participant.dateComparator}" sortOrder="#{participant.dateOrder}">
<f:facet name="header" >
<a4j:commandLink value="DATE D'INCLUSION" render="customList" action="#{participant.sortByDates}" />
</f:facet>
<h:outputText value="#{c.enrollment_date}" />
</rich:column>
</rich:dataTable>
</rich:panel>
</a4j:outputPanel>
</h:form>
<rich:jQuery selector="#customList tr:odd" query="addClass('odd-row')" />
<rich:jQuery selector="#customList tr:even" query="addClass('even-row')" />
<rich:jQuery selector="#customList tr" query="mouseover(function(){jQuery(this).addClass('active-row')})"/>
<rich:jQuery selector="#customList tr" query="mouseout(function(){jQuery(this).removeClass('active-row')})"/>
我有更好的做法来添加 attach-type="live" 和事件类型:
<rich:jQuery selector="#customList tr:odd" query="addClass('odd-row')" />
<rich:jQuery selector="#customList tr:even" query="addClass('even-row')" />
<rich:jQuery selector="#customList tr" event ="mouseover" query="jQuery(this).addClass('active-row')" attachType="live"/>
<rich:jQuery selector="#customList tr" event ="mouseout" query="jQuery(this).removeClass('active-row')" attachType="live"/>
我的效果是用于鼠标悬停和鼠标退出。但是斑马风格仍然不起作用。而且我不能影响两个前 rich:query 标签上的事件......我在这里没有任何想法...有人,谢谢?继续寻找解决方案。
css 样式是:
.even-row {background-color: #FCFFFE;}
.odd-row {background-color: #ECF3FE;}
.active-row {background-color: #FFEBDA !important;cursor: pointer;}
另一个问题,为什么在rich:datatable中,rowClasses设置为"order-table-odd-row,order-table-even-row",而我的css只被命名为odd-row和even-row。我对此感到迷茫...
更新:我将 css 更改为订单表偶数行,订单表奇数行...现在 evrything 工作正常。