Propriété Selected sur un contrôle de table

  • Propriété Selected sur un contrôle de table

    Posté par Laurent sur 19 décembre 2023 à 18h53

    Bonjour,

    C’est ma première question sur le forum 🙂

    Voilà : j’ai un contrôle de table qui affiche 3 colonnes issues d’une table Dataverse. Quand je clique sur une ligne, j’affiche les données et je peux les modifier + sauvegarder avec un Patch().

    J’ai aussi un bouton pour créer une nouvelle entrée dans ma table. Les boutons Nouveau (= efface les TextInput pour un proposer une fiche vierge) et Enregistrer (pour écrire dans la table avec Patch) fonctionnent parfaitement. Mais là je bloque sur un tout dernier problème : quand j’enregistre une nouveau fiche, je ne trouve pas comment définir la propriété Selected pour que la ligne sélectionnée soit bien positionnée tout en bas de la liste, où est visible mon nouvel enregistrement…

    Merci d’avance

    Laurent a répondu Il y a 6 mois, 3 semaines 4 Membres · 9 Réponses
  • 9 Réponses
  • DavidZed

    Membre
    19 décembre 2023 à 21h13

    Bonjour,

    Le plus simple, je pense, est de trier les données affichées dans la table par date de création, exemple :

    Dans la propriété Items de ton contrôle table :

    Sort(‘Nom de la source Dataverse’ ; ‘Créé le’ ; SortOrder.Ascending)

    • Laurent

      Membre
      19 décembre 2023 à 21h19

      Merci David,

      mais cela va déplacer la sélection en tête de table ?

      • DavidZed

        Membre
        19 décembre 2023 à 21h26

        Non, pour les dates, ascending va du plus petit au plus grand, donc du plaus ancien au plus récent

        • Laurent

          Membre
          20 décembre 2023 à 17h30

          J’ai mis la commande Sort(…) dans un bouton pour tester : pas d’erreur, mais le Contrôle Table ne bronche pas… Faut-il demander explicitement un refresh ou un rechargement du contrôle ?

          A moins que cette commande ne fonctionne qu’avec une Galerie ?

        • Laurent

          Membre
          21 décembre 2023 à 19h25

          J’ai testé en mettant la commande Sort dans la propriété Items : ça permet en effet de renvoyer les nouveaux enregistrements en fin ou en tête de table, mais cela ne sélectionne pas la ligne créée quand on ajoute un enregistrement. Conséquence, si la liste est plus longue que le tableau avant de lancer la commande, on est pas positionné en haut (ou en bas) et on ne voit pas le nouvel enregistrement apparaître dans la table…

  • Fanta

    Membre
    26 décembre 2023 à 17h01

    Trier les données pour afficher les nouvelles entrées en bas de la table

    VotreControleTable.Selected = IDNouvelleEntrée

    Sélectionner automatiquement la nouvelle entrée:

    VotreControleTable.Selected = IDNouvelleEntrée

    • Cette réponse a été modifiée Il y a 7 mois par  Fanta.
    • Laurent

      Membre
      29 décembre 2023 à 12h02

      Merci pour ta réponse.

      J’ai testé sans succès. J’ai 2 questions :

      • tu as mis la même commande dans les 2 cas, normal ?
      • A quoi correspond IDNouvelleEntrée ? Dans mon test , je suis obligé de mettre le nom du champ pour qu’il n’y ait pas d’erreur, exemple avec le champs Nom (qui est unique) :
        • DataTable1.Selected.Nom=”Dalli”
        • mais cela ne fait rien
      • R3dKap

        Membre
        30 décembre 2023 à 17h27

        Salut Laurent,

        Si on parle bien du contrôle Table de données de Power Apps, alors ce que tu cherches à faire n’est pas possible. La propriété Selected de ce contrôle est une propriété de sortie qui ne peut pas être définie manuellement par un mécanisme quelconque. La sélection ne se fait QUE manuellement par l’utilisateur lorsqu’il clique sur une ligne du tableau.

        Pour faire ce que tu veux faire, il te faudra passer par une galerie.

        • Laurent

          Membre
          5 janvier 2024 à 16h46

          Merci. Ta réponse est très claire et d’après tous mes tests, j’en arrive à la même conclusion… Du coup, après avoir ajouté un enregistrement dans la table, il n’y a pas moyen de se retrouver positionné sur cet enregistrement dans l’interface… c’est ballot tout de même…

Connectez-vous pour répondre.