IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

ASP.NET Discussion :

Insérer des contrôles dans un TreeView


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut Insérer des contrôles dans un TreeView
    Bonjour à tous,

    Je cherche à insérer des contrôles (boutons) dans les noeuds d'un TreeView.

    Je m'explique :

    Les données que j'affiche dans le treeview ressemble au niveau présentation à ce que l'on pourrait trouver dans un grid view (j'ai plusieurs champs), à la différence près que les enregsitrements sont hiérarchisés.

    Actuellement, j'insère dans les noeuds du treeview le code HTML d'un Table (avec un HTMLTextWriter, et la méthode RenderControl du Table) pour simuler un affichage sous forme de tableau, en plus de l'affichage type treeview.

    Pour ça, ça va. Le problème est que je dois associer des actions à chacun de ces enregistrements (comme déplacer vers le haut, vers le bas). C'est là que ça coince : je n'arrive pas à insérer de boutons.

    J'ai déjà essayé plusieurs méthodes :
    - Ajout d'un formulaire fait à la main en html pur : ça fonctionne, mais par contre, je ne peux pas utiliser d'imagebutton, et surtout ça me raffraichi obligatoirement toute la page (le treeview est encapsulé dans un UpdatePanel)
    - Remplissage d'un GridView avec les données et les actions, puis après bind, je recopie les rows du gridview dnas mon arbre, en utilisant un HTMLTextWriter , et là je me retrouve avec mon erreur :
    (HTTPException) Le contrôle 'ctl00_ContentPlaceMain_GridView2_ctl02_ctl00' de type 'DataControlLinkButton' doit être placé dans une balise form avec runat=server.
    Voilà, je n'ai pas l'impression que le TreeView soit fait pour ça puisqu'on ne peut normalement y insérer que du texte, mais bon, j'espère qu'il y a qd même un moyen de feinter.

    Note : Je débute en ASP.Net, il est possible que je soit passé à côté d'une évidence.

    Merci d'avance pour vos lumières

    -Batoche

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Points : 633
    Points
    633
    Par défaut
    Tu ne peux pas utiliser une GridView Hiérarchique ??
    Sinon, j'ai pas tout compris à ton histoire de Treeview
    Tu n'as pas un screenshot ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Ca existe, un grid view hierarchique ?
    Je n'ai rien vu de tel dans visual

    Autrement, j'ai joint un screen du treeview que j'ai pour l'instant (j'ai entouré les tableaux en bleu) J'aimerais ajouter des contrôles dans le champ "Action".
    Images attachées Images attachées  

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Points : 633
    Points
    633
    Par défaut
    Cela n'existe pas directement dans le Framework, voilà des liens pour te montrer de quoi je parle:


    http://www.webswapp.com/codesamples/...s/default.aspx


    http://www.digitaltools.com/GVT.aspx

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Merci pour les liens, le premier ne propose pas vraiment de composant qui puisse correspondre à ce que je chercherais, le deuxième, en revanche, à l'air de coller, mais il est malheureusement payant.

    Je vais chercher si j'en trouve d'autres.

    Celà dit, je suis toujours preneur pour une solution pour introduire des contrôles dans les noeuds du treeview.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Bon, j'ai utilisé une méthode alternative, si ça interresse quelqu'un :

    L'ajout des contrôles dans le treeview est possible uniquement si le bouton en question ne fait pas parti de l'arbre des contrôles (ou du moins si aucun evènement ne lui est associé), car sinon, le RenderControl dans un HTMLTextWriter echoue. En revanche, il est possible de lui associer un code javascript (évènement client).

    L'astuce est la suivante :

    Je créé statiquement, sur la page du treeview, des champs cachés permettant de reconstituer une action.

    Je créé également une fonction javascript dont le rôle sera de remplir ces champs cachés (en fonction des paramètres de la fonction JS), et d'appeller la fonction javascript du chargement du UpdatePanel (qui contient le TreeView).

    Aux contrôles que j'insère dans le treeview, je donne cette fonction à appeller sur un onclick, avec les bons paramètres (action, identifiant de l'enregistrement ...)

    Ainsi, lors d'un click sur un contrôle inséré dans le treeview, la fonction js est appellée, rempli les champs cachés, et appelle la méthode pour raffrachir le UpdatePanel. le UpdatePanel se reaffraichi, j'interprète en code behind les informations des champs cachés, pour effectuer le traitement approprié.

    Voilà voilà.

    Par contre, il y a un hic. La fonction javascript que j'ai écrit appel bien la méthode du UpdatePanel, mais c'est le nom de cette méthode qui m'embête :

    "ctl00_ContentPlaceMain_UpdatePanel1"

    Ca sent le généré selon des paramètres que je ne maîtrise pas (le "ctl00").

    J'aimerais savoir s'il y a moyen de connaitre, dans le code, le nom de cette fonction.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Insérer des photos dans contrôle image
    Par apdf1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/02/2015, 18h02
  2. [MFC] Insérer des contrôle dans un MDI (CDocument et Cview)
    Par BenoitYneste dans le forum Langage
    Réponses: 1
    Dernier message: 13/07/2012, 10h57
  3. [AC-2003] Insérer des contrôles dans un formulaire dynamiquement
    Par autkioer dans le forum VBA Access
    Réponses: 3
    Dernier message: 29/12/2010, 16h32
  4. Pbs pour Glisser-Deplacer des noeuds dans un TreeView.
    Par psau dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/09/2004, 21h02
  5. insérer des images dans une bd postgresql
    Par ephet dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/01/2004, 09h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo