Use a Datatable with javascript

UI Components for JSF
Post Reply
denisduval75
Posts: 109
Joined: 08 Nov 2016, 16:53

16 Dec 2018, 15:14

Hello,
I use a datatable.
I want to recover this datatable in javascript.
I tried with "getElementById", but I get null.
Please, can you help me ?
Thank you very much.

Version info :
PF 6.1.2
JSF 2.2

My code :

Code: Select all

        <script type="text/javascript">
            function go()
            {
                alert(document.getElementById("idRefCollectivite"));
            }
        </script>

Code: Select all

<p:commandButton value="GO" type="button" onclick="go()"/>

Code: Select all

                        <p:dataTable id="idRefCollectivite" widgetVar="widgetRefCollectivite" var="ligne" tableStyle="table-layout: auto" class="tableauStyle"
                                     value="#{administrationCollectiviteManagerBean.listeRefCollectivite}"
                                     rowKey="#{ligne.idPk}"
                                     selection="#{administrationCollectiviteManagerBean.collectiviteSelectionnee}"
                                     resizableColumns="true"
                                     liveResize="true"
                                     selectionMode="single" 
                                     nullSortOrder="-1"
                                     paginator="true"
                                     paginatorPosition="bottom"
                                     paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
                                     emptyMessage="Aucun enregistrement trouvé">
                            <p:ajax event="contextMenu" listener="#{administrationCollectiviteManagerBean.rechercherColonne()}" update="idPictos :form:idRefUtilisateur"/>
                            <p:ajax event="rowSelect" update="idPictos :form:idRefUtilisateur"/>
                            <p:ajax event="rowUnselect" update="idPictos :form:idRefUtilisateur"/>
                            <p:ajax event="page" onstart="PF('widgetPatienter').block()" oncomplete="PF('widgetPatienter').unblock()"/>
                            <p:ajax event="sort" onstart="PF('widgetPatienter').block()" oncomplete="PF('widgetPatienter').unblock()"/>
                            <f:facet name="header">
                                <h:outputLabel value="Collectivités" class="gris"/>
                                <p:fragment id="idPictos">
                                    <div class="tableauPicto">
                                        <p:commandLink actionListener="#{administrationCollectiviteManagerBean.initialiserCollectivite()}"
                                                       oncomplete="PF('widgetCollectivite').show()"
                                                       update=":form:idCollectivite">
                                            <p:graphicImage id="idPictoCreer" value="images/Creer.png" class="tableauPictoMarge"/>
                                            <pe:tooltip value="Ajouter" for="idPictoCreer" myPosition="bottom left" atPosition="top right" styleClass="infoBulle"/>
                                        </p:commandLink>
                                        <p:commandLink rendered="#{administrationCollectiviteManagerBean.collectiviteSelectionnee != null}"
                                                       action="#{administrationCollectiviteManagerBean.modifierCollectivite()}"
                                                       oncomplete="PF('widgetCollectivite').show()"
                                                       update=":form:idCollectivite">
                                            <p:graphicImage id="idPictoModifier" value="images/Editer.png" class="tableauPictoMarge"/>
                                            <pe:tooltip value="Modifier" for="idPictoModifier" myPosition="bottom left" atPosition="top right" styleClass="infoBulle"/>
                                        </p:commandLink>
                                        <p:commandLink rendered="#{administrationCollectiviteManagerBean.collectiviteSelectionnee != null}">
                                            <p:ajax oncomplete="PF('widgetMessageSupprimerCollectivite').show()"
                                                    update=":form:idMessageSupprimerCollectivite"/>
                                            <p:graphicImage id="idPictoSupprimer"  value="images/Poubelle.png" class="tableauPictoMarge"/>
                                            <pe:tooltip value="Supprimer" for="idPictoSupprimer" myPosition="bottom left" atPosition="top right" styleClass="infoBulle"/>
                                        </p:commandLink>
                                    </div>
                                </p:fragment>
                            </f:facet>
                            <p:columns value="#{administrationCollectiviteManagerBean.listeColonne}" var="colonne" columnIndexVar="iColonne" class="tableauContour" 
                                       headerText="#{colonne}" 
                                       sortBy="#{administrationCollectiviteManagerBean.trierTableau(ligne, colonne)}">
                                <p:commandLink>
                                    <p:ajax listener="#{administrationCollectiviteManagerBean.modifierCollectivite(ligne)}"
                                            oncomplete="PF('widgetCollectivite').show()"
                                            update=":form:idCollectivite"/>
                                    <h:outputText id="idValeurColonne" value="#{empty administrationCollectiviteManagerBean.rechercherValeurColonne(ligne, colonne) ? '&nbsp;' : administrationCollectiviteManagerBean.rechercherValeurColonne(ligne, colonne)}" class="texteGris"/>
                                    <pe:tooltip value="Modifier" for="idValeurColonne" myPosition="bottom left" atPosition="top right" styleClass="infoBulle"/>
                                </p:commandLink>
                                <p:graphicImage id="idImage" class="tableauNote"
                                                value="images/PostIt#{noteManagerBean.rechercherNoteTableauCouleur(ligne.idPk, iColonne)}.png"
                                                rendered="#{not empty noteManagerBean.rechercherNoteTableau(ligne.idPk, iColonne)}"/>
                                <pe:tooltip for="idImage" value="#{noteManagerBean.noteInfoBulle(null, ligne.idPk, iColonne)}" myPosition="left bottom" atPosition="right top" styleClass="infoBulle infoBulleNote"/>
                            </p:columns>
                            <f:facet name="footer">
                                <div class="tableauFooter">
                                    <h:outputText value="#{administrationCollectiviteManagerBean.listeRefCollectivite.size()}"/>
                                    <h:outputText value="#{administrationCollectiviteManagerBean.listeRefCollectivite.size() lt '2' ? 'collectivité' : 'collectivités'}" class="tableauFooterMarge"/>
                                </div>
                            </f:facet>
                        </p:dataTable>
                    </div>
                    <p:contextMenu for="idRefCollectivite" beforeShow="noteMenuContextuelPosition()"> 
                        <p:menuitem value="#{empty noteManagerBean.rechercherNoteTableau(
                                             administrationCollectiviteManagerBean.collectiviteSelectionnee.idPk,
                                             administrationCollectiviteManagerBean.collectiviteSelectionneeColonne) ? 'Ajouter une note' : 'Modifier la note'}"
                                    actionListener="#{noteManagerBean.afficherNoteTableau(
                                                      'T', 
                                                      administrationCollectiviteManagerBean.collectiviteSelectionnee.idPk,
                                                      administrationCollectiviteManagerBean.collectiviteSelectionneeColonne)}"
                                    oncomplete="PF('widgetNoteDialog').show()"
                                    update=":form:idDialogNote"/>
                    </p:contextMenu>

                    <div class="tableau effetFade" style="position: absolute; right: 1%; left: 40.5%">
                        <p:dataTable id="idRefUtilisateur" widgetVar="widgetRefUtilisateur" var="utilisateur" class="tableauStyle"
                                     value="#{administrationCollectiviteManagerBean.collectiviteSelectionnee.listeRefUtilisateur}"
                                     rowKey="#{utilisateur.idPk}"
                                     selection="#{administrationCollectiviteManagerBean.utilisateurSelectionne}"
                                     resizableColumns="true"
                                     liveResize="true"
                                     selectionMode="single" 
                                     nullSortOrder="-1"
                                     paginator="true"
                                     paginatorPosition="bottom"
                                     paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
                                     rows="#{accueilManagerBean.tableauLignes}"
                                     emptyMessage="Aucun enregistrement trouvé">
                            <p:ajax event="rowSelect" update="idPictos"/>
                            <p:ajax event="rowUnselect" update="idPictos"/>
                            <f:facet name="header">
                                <h:outputLabel value="Utilisateurs" class="gris"/>
                                <p:fragment id="idPictos">
                                    <div class="tableauPicto">
                                        <p:commandLink rendered="#{administrationCollectiviteManagerBean.collectiviteSelectionnee != null}">
                                            <p:graphicImage id="idPictoCreer" value="images/Creer.png" class="tableauPictoMarge"/>
                                            <pe:tooltip value="Ajouter" for="idPictoCreer" myPosition="bottom left" atPosition="top right" styleClass="infoBulle"/>
                                            <p:ajax listener="#{administrationCollectiviteManagerBean.initialiserUtilisateur()}"
                                                    oncomplete="PF('widgetUtilisateur').show()"
                                                    update=":form:idUtilisateur"/>
                                        </p:commandLink>
                                        <p:commandLink rendered="#{administrationCollectiviteManagerBean.utilisateurSelectionne != null}"
                                                       action="#{administrationCollectiviteManagerBean.modifierUtilisateur()}"
                                                       oncomplete="PF('widgetUtilisateur').show()"
                                                       update=":form:idUtilisateur">
                                            <p:graphicImage id="idPictoModifier" value="images/Editer.png" class="tableauPictoMarge"/>
                                            <pe:tooltip value="Modifier" for="idPictoModifier" myPosition="bottom left" atPosition="top right" styleClass="infoBulle"/>
                                        </p:commandLink>
                                        <p:commandLink rendered="#{administrationCollectiviteManagerBean.utilisateurSelectionne != null}">
                                            <p:ajax oncomplete="PF('widgetMessageSupprimerUtilisateur').show()"
                                                    update=":form:idMessageSupprimerUtilisateur"/>
                                            <p:graphicImage id="idPictoSupprimer"  value="images/Poubelle.png" class="tableauPictoMarge"/>
                                            <pe:tooltip value="Supprimer" for="idPictoSupprimer" myPosition="bottom left" atPosition="top right" styleClass="infoBulle"/>
                                        </p:commandLink>
                                    </div>
                                </p:fragment>
                            </f:facet>
                            <p:column headerText="Code" sortBy="#{utilisateur.code}" class="tableauContour">
                                <h:outputText value="#{utilisateur.code}" class="texteGris" style="white-space: nowrap"/>
                            </p:column>
                            <p:column headerText="Nom" sortBy="#{utilisateur.nom}" class="tableauContour">
                                <p:commandLink>
                                    <p:ajax listener="#{administrationCollectiviteManagerBean.modifierUtilisateur(utilisateur)}"
                                            oncomplete="PF('widgetUtilisateur').show()"
                                            update=":form:idUtilisateur"/>
                                    <h:outputText id="idNom" value="#{utilisateur.nom}" class="texteGris" style="white-space: nowrap"/>
                                    <pe:tooltip value="Modifier" for="idNom" myPosition="bottom right" atPosition="top left" styleClass="infoBulle"/>
                                </p:commandLink>
                            </p:column>
                            <p:column headerText="Prénom" sortBy="#{utilisateur.prenom}" class="tableauContour">
                                <h:outputText value="#{utilisateur.prenom}" class="texteGris" style="white-space: nowrap"/>
                            </p:column>
                            <p:column headerText="Sexe" sortBy="#{utilisateur.sexe}" class="tableauContour" width="44" style="text-align: center">
                                <h:outputText value="#{utilisateur.sexe}" class="texteGris"/>
                            </p:column>
                            <p:column headerText="Fonction" sortBy="#{utilisateur.fonction}" class="tableauContour">
                                <h:outputText value="#{utilisateur.fonction}" class="texteGris" style="white-space: nowrap"/>
                            </p:column>
                            <p:column headerText="Type" sortBy="#{utilisateur.type}" class="tableauContour">
                                <h:outputText value="#{administrationCollectiviteManagerBean.refUtilisateurFacade.initialiserTypeLibelle(utilisateur.type)}" class="texteGris"/>
                            </p:column>
                            <f:facet name="footer">
                                <div class="tableauFooter">
                                    <h:outputText value="0 utilisateur" 
                                                  rendered="#{administrationCollectiviteManagerBean.collectiviteSelectionnee.listeRefUtilisateur.size() == null}"/>
                                    <h:outputText value="#{administrationCollectiviteManagerBean.collectiviteSelectionnee.listeRefUtilisateur.size()}"
                                                  rendered="#{administrationCollectiviteManagerBean.collectiviteSelectionnee.listeRefUtilisateur.size() != null}"/>
                                    <h:outputText value="#{administrationCollectiviteManagerBean.collectiviteSelectionnee.listeRefUtilisateur.size() lt '2' ? 'utilisateur' : 'utilisateurs'}" class="tableauFooterMarge"
                                                  rendered="#{administrationCollectiviteManagerBean.collectiviteSelectionnee.listeRefUtilisateur.size() != null}"/>
                                </div>
                            </f:facet>
                        </p:dataTable>
Last edited by denisduval75 on 17 Dec 2018, 07:16, edited 2 times in total.

kukeltje
Expert Member
Posts: 9605
Joined: 17 Jun 2010, 13:34
Location: Netherlands

17 Dec 2018, 01:36

Hi Denis,

I hope you understand that it is very hard to help with what you posted. You've made 66 posts and most likely came across a hint to post code. Preferable in mcve flavour, https://stackoverflow.com/help/mcve. For all we know you use an h:dataTable and not a PF one. And 'recover' a datatable? Never head that term before. Please post code (and version info)

tandraschko
PrimeFaces Core Developer
Posts: 3979
Joined: 03 Dec 2010, 14:11
Location: Bavaria, DE
Contact:

17 Dec 2018, 09:48

Use the browser developer tools to get the real id, called clientID in jsf.
Thomas Andraschko

PrimeFaces | PrimeFaces Extensions

Apache Member | OpenWebBeans, DeltaSpike, MyFaces, BVal, TomEE

Sponsor me: https://github.com/sponsors/tandraschko
Blog: http://tandraschko.blogspot.de/
Twitter: https://twitter.com/TAndraschko

iMikeDeveloper
Posts: 15
Joined: 23 Aug 2018, 14:37

17 Dec 2018, 12:06

You can get the table element by classname with jquery easily

Code: Select all

<p:datatable styleClass="myTable" > 
    ...
</p:datatable>


let myTable = $('.myTable');

denisduval75
Posts: 109
Joined: 08 Nov 2016, 16:53

17 Dec 2018, 15:19

Thank you for your answer.

How to get the 1st element?
I tried :

Code: Select all

let myTable = $('.tableauStyle'); alert(myTable[0]);
but I get: "Object HTMLDivElement"

iMikeDeveloper
Posts: 15
Joined: 23 Aug 2018, 14:37

17 Dec 2018, 15:25

denisduval75 wrote:
17 Dec 2018, 15:19
Thank you for your answer.

How to get the 1st element?
I tried :

Code: Select all

let myTable = $('.tableauStyle'); alert(myTable[0]);
but I get: "Object HTMLDivElement"
Add .first()

Code: Select all

$('.myClassTable').first();
or

Code: Select all

$('.myClassTable').eq(0);

denisduval75
Posts: 109
Joined: 08 Nov 2016, 16:53

18 Dec 2018, 17:50

The element I'm getting is a Datatable.
I'm using a contextMenu for this Datatable and I get the line easily, but I can not get the column.
Is there a solution with JS ... or PF?

My code :

Code: Select all

<p:dataTable id="idRefCollectivite" widgetVar="widgetRefCollectivite" 
     value="#{administrationCollectiviteManagerBean.listeRefCollectivite}"
     ...
     ...
</p:dataTable>

<p:contextMenu for="idRefCollectivite" ...> 
     <p:menuitem 
      ...
      ...
 </p:contextMenu>
Last edited by denisduval75 on 19 Dec 2018, 08:29, edited 1 time in total.

kukeltje
Expert Member
Posts: 9605
Joined: 17 Jun 2010, 13:34
Location: Netherlands

18 Dec 2018, 21:45

new questions in new questions please...

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 54 guests