Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre du Club
    Widget Label qui ne s'affiche pas dans tous les row d'un flexTable
    Bojnour tout le monde,

    voilà, j'essaye de faire une application qui affiche le contenu d'une table dans une mémoire cache de mon serveur !
    mon problème est que je veux afficher un lien : "remove" qui permet de supprimer la ligne en question qui correspond à un enregistrement dans cette même table en mémoire cache, je récupère les données en question sous forme d'un arrayList de tableau de String

    mon soucis est que lorsque j'affiche le tout dans un flexTable y a pas de soucis , par contre le label removeLink ne s'affiche qu'une seule fois, dans la dernière ligne
    voici le code :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	public void onSuccess(ArrayList<String[]> result) {
    								String[] tab = new String[2];
    								for (int i = 0; i < result.size(); i++) {
    									tab = result.get(i);
    									flexTable.setText(i + 1, 0, tab[0]);
    									flexTable.setText(i + 1, 1, tab[1]);
    									flexTable.setWidget(i + 1, 2, removeLink);
     
    								}
    							}


    le remove link est :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    // add label to delete a row key/value
    		final Label removeLink = new Label("Remove");
    		removeLink.addStyleName("remove");


    et l'évenement correspondant est décrit dans le code suivant :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Add a handler to remove a key/value row
    		removeLink.addClickHandler(new ClickHandler() {     
    			   @Override
    			   public void onClick(ClickEvent event) {
    				   int rowIndex = flexTable.getCellForEvent(event).getRowIndex();
    			        flexTable.removeRow(rowIndex);
    			   }
    			  });


    comment faire pour afficher le label removeLink dans toutes les lignes de mon flexTable ???????????????????????????

    Merciiiiiii

  2. #2
    Expert éminent sénior
    Salut,


    Un Widget ne peut être positionné qu'à un seul emplacement.
    Si tu l'ajoutes plusieurs fois il est automatiquement "enlevé" de son emplacement précédent.

    Il faut créer un nouveau Label pour chacune des lignes...


    a++
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Membre du Club
    Bonjour,

    merci pour la réponse, mais si je crée un nouveau label à chaque fois, comment implémenter le handler ??? pour chacun des nouveaux label??

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    / Add a handler to remove a key/value row
    		removeLink.addClickHandler(new ClickHandler() {     
    			   @Override
    			   public void onClick(ClickEvent event) {
    				   int rowIndex = flexTable.getCellForEvent(event).getRowIndex();
    			        flexTable.removeRow(rowIndex);
    			   }
    			  });


    je n'y arrive pas svp !!!