J'essaie de mettre en évidence les lignes du dataté étendu lorsque la souris est terminée. Voici mes données:
<rich:extendedDataTable onrowmouseover ="this.style.backgroundColor='#B5F3FB'" onrowmouseout="this.style.backgroundColor='white'" value="#{moneyTransferManager.allAccounts}" var="accounts" selection="#{extTableSelectionBean.selection}" id="table" frozenColumns="2" style="height:170px; width:484px;"> <a4j:ajax execute="@form" event="selectionchange" listener="#{extTableSelectionBean.selectionListener}" render=":res"/> <f:facet name="header"> <h:outputText value="Hesaplarım"/> </f:facet> <rich:column width="120px;"> <f:facet name="header"> <h:outputText value="Hesap Numarası"/> </f:facet> <h:outputText value="#{accounts.accountNumber}"/> </rich:column> <rich:column width="120px;"> <f:facet name="header"> <h:outputText value="Para Birimi"/> </f:facet> <h:outputText value="#{accounts.accountCurrency}"/> </rich:column> </rich:extendedDataTable>
Celui-ci ne se présente que si la ligne est cliquée. Ensuite, j'ai essayé le code de javascript suivant:
<script type="text/javascript"> $("tr").not(':first').hover( function () { $(this).css("background","yellow"); }, function () { $(this).css("background",""); } ); </script>
Mais cette fois que la souris est terminée, toutes les lignes sont en surbrillance. Est-ce que quelqu'un peut m'aider avec ça?
Merci
Edit: Cette fois, j'ai essayé ce code javascript:
<script type="text/javascript"> $(function() { $("tr").not(':first').hover( function() { $(this).css("background", "yellow"); }, function() { $(this).css("background", ""); } ); }) </script>
Mais toujours, lorsque la souris est sur une ligne, toutes les lignes sont en surbrillance. Qu'est-ce que je fais mal ici?
Edit 2: J'ai également essayé ceci:
<rich:extendedDataTable onrowmouseover ="this.style.backgroundColor='#B5F3FB'" onrowmouseout="this.style.backgroundColor='white'"
Cette fois-ci, mais lorsque la souris est sur la 1ère ou la 2ème colonne, les 2 premiers sont en surbrillance et lorsque la souris est sur 3ème ou 4ème colonne, les 3ème et 4ème lignes sont mises en surbrillance, je veux dire 1-2 sont mis en surbrillance ensemble et 3-4 sont ensemble
Voici le code complet de la page:
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:rich="http://richfaces.org/rich" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> <h:head> <title>Facelet Title</title> </h:head> <h:body> <div> <ui:include src="/template.xhtml" /> </div> <div style="position: relative; top: 120px; left: 300px"> <h:panelGrid columns="2"> <h:form> <rich:extendedDataTable value="#{moneyTransferManager.allAccounts}" var="accounts" selection="#{extTableSelectionBean.selection}" id="table" frozenColumns="2" style="height:170px; width:484px;"> <a4j:ajax execute="@form" event="selectionchange" listener="#{extTableSelectionBean.selectionListener}" render=":res"/> <f:facet name="header"> <h:outputText value="Hesaplarım"/> </f:facet> <rich:column width="120px;"> <f:facet name="header"> <h:outputText value="Hesap Numarası"/> </f:facet> <h:outputText value="#{accounts.accountNumber}"/> </rich:column> <rich:column width="120px;"> `enter code here`<f:facet name="header"> <h:outputText value="Para Birimi"/> </f:facet> <h:outputText value="#{accounts.accountCurrency}"/> </rich:column> <rich:column width="120px;"> <f:facet name="header"> <h:outputText value="IBAN"/> </f:facet> <h:outputText value="#{accounts.iban}"/> </rich:column> <rich:column width="120px;"> <f:facet name="header"> <h:outputText value="Bakiye"/> </f:facet> <h:outputText value="#{accounts.balance}"/> </rich:column> </rich:extendedDataTable> </h:form> <a4j:outputPanel id="res"> <rich:panel header="Seçilen Hesap:" rendered="#{not empty extTableSelectionBean.selectionItems}"> <rich:list type="unordered" value="#{extTableSelectionBean.selectionItems}" var="sel"> <h:outputText value="#{sel.accountCurrency} - #{sel.iban} - #{sel.balance}"/> </rich:list> </rich:panel> </a4j:outputPanel> <rich:panel styleClass="top"> <div style="position: relative; left: -3px; top: 23px"> <h:outputText style=" font-size: 12px; font-weight: bold; " value="Yapmak istediğiniz işlem .."></h:outputText> </div> <h:form> <div style="position: relative; left: 160px; top: -3px"> <rich:select value="#{transactionManager.selection}" defaultLabel="Bir işlem seçin..."> <f:selectItem itemValue="0" itemLabel="Hesap Hareketlerini Listele" /> </rich:select> </div> <div style="position: relative; left: 380px; top: -22px"> <h:commandButton action="#{transactionManager.accountActivity()}" value="Devam" style="color: #000000; font-weight: bold; width: 70px; height: 21px; background-color: grey; -moz-border-radius: 0px; -webkit-border-radius: 15px;"></h:commandButton> </div> </h:form> </rich:panel> </h:panelGrid> </div> </h:body> </html>
L'utilisation de onrowmouseover
et onrowmouseout
fonctionna bien à ma fin. Essayez d'utiliser l'attribut rowClass
de <rich:extendedDataTable>
et définissez une règle dans votre feuille de style comme ça.
.test:hover { background-color: yellow; }
Et fait
<rich:extendedDataTable rowClass="test">
N'oubliez pas de définir votre <h:outputStylesheet>
dans <h:head>