none
TreeView Control avec des checkboxes RRS feed

  • Question

  • Bonjour

     

    Un TreeView dont chaque noeud est représenté par une checkbox (propriété

    ShowCheckBoxes="All" ) a l'inconvénient de ne pas propager la statut du check box a ses enfants.

     

    De plus l'évenement OnTreeNodeCheckChanged par soucis de performance n'est appeler qu'au postback de la page par appui sur un bouton "valider" par exemple

     

    Pour remédier à cela j'ai vu le code d'un nouvel arbre a base de repeater ici : http://www.webswapp.com/codesamples/aspnet20/treeview/custom.aspx

     

    Ceci est intéressant mais dans le cadre ou on crée les noeuds dynamiquement il faut bien entendu étendre largement ce code pour procurer toutes les fonctions d'ajout, suppression...d'un noeud dans un control .ascx complet

     

    Je me demande donc si il existe d'autres solutions ou si le controle natif  TreeView va bientôt être amélioré ?

     

    J'avais une autre idée mais étant débutante en javascript et ceci n'étant guere debugable aisément...

    Je pensais mettre un timer javascript dans la page pour parcourir tous les noeuds et propager les statuts des noeuds (check ou non) à l'ensemble des noeuds enfants...La seule chose est que je ne sais pas comment parcourir en javascript l'ensemble des controles d'un control asp .net de type TreeView ou même de type GridView et ceci d'autant plus si ils sont placés dans un contentplaceholder d'une master page..? depuis l'objet window.document comment accéder aux controles dans leur hierarchie (contentplaceholder -> TreeView -> HeaderTemplate ...) ???

     

    Merci pour votre aide

     

     

     

    vendredi 17 août 2007 08:48

Toutes les réponses

  •  

    Re

     

    Je viens d'essayer aussi d'utliser Ajax comme ceci :

     

     

    Code Snippet

    <asp:ScriptManager ID="ScriptManager1" runat="server" />

    <asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="500" />

    <asp:UpdatePanel ID="UpdatePanel" runat="server" UpdateMode="Conditional">

    <Triggers>

    <asp:AsyncPostBackTrigger ControlID="Timer1" />

    </Triggers>

    <ContentTemplate>

    <asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" ShowLines="true" OnTreeNodeCheckChanged="OnSelect">

    </asp:TreeView>

    <br />

    <asp:Button ID="Button1" runat="server" OnClick="OnSelect" Text="Valider la sélection" Width="127px" />

    </ContentTemplate>

    </asp:UpdatePanel>

     

     

    C'est pas mal mais ca flick sur les lignes du TreeView qui se redessine ??

     

    Encore des idées ?

     

    Merci

    vendredi 17 août 2007 10:09