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 :

Savoir dans le page_load si le treeview a été cliqué


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut Savoir dans le page_load si le treeview a été cliqué
    Bonjour à tous,

    En fait, j'ai 1 gridview lié à un SqlDataSource et 2 moyens de le remplir:
    1 - Un module de recherche avec un bouton "Rechercher".
    2 - Un treeview qui représente des catégories.

    Je met soit une requete soit une autre dans le SqlDataSource selon le cas.

    Pour une recherche normale: pas de pb, sur le bouton_clic, je met une variable de session à 1.
    Ensuite, dans le page_load, je peux brancher ma requête désirée sur le SqlDataSource si session à 1.

    Seulement, pour le Treeview, je n'ai pas d'évènements qui me dit que j'ai cliqué sur un noeud avant qu'il ne passe dans le page_load.
    Si je met une variable de session dans le _SelectedNodeChanged, il a toujours un temps de retard.

    Avez vous une idée ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Il faut que tu charges ta sqldatasource après le load du treeview, non?
    Pourquoi utliser une session. Tout tes contrôles sont dans la même page. Tu peux accéder aux valeurs de chacun d'entre eux.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour,

    Merci pour ta réponse Immobilis.

    Non, en fait, le treeview a été surchargé, il est un control dans lequel tous les évènements sont déjà prédéfinis et les procédures déjà écrites (mais il n'est pas compilé, j'y ai accès).
    Dans ma page principale, j'ai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <MesControles:CategoryTree ID="ctlCategoryTree" runat="server" bHasCheckBox="false" bShowButtonsExpandCollapse="true" />
    Et dans le Ascx de mon control, j'ai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <asp:TreeView ID="trvDocuments" runat="server" OnSelectedNodeChanged="trvDocuments_SelectedNodeChanged"
        MaxDataBindDepth="0" PopulateNodesFromClient="False" ShowLines="True" CssClass="ArbreEdit">
        <ParentNodeStyle Font-Bold="False" />
        <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
        <SelectedNodeStyle HorizontalPadding="5px" VerticalPadding="0px" CssClass="NoeudSel" />
        <NodeStyle HorizontalPadding="5px" VerticalPadding="0px" NodeSpacing="1px" />
        <RootNodeStyle Font-Italic="False" />
    </asp:TreeView>
    Or, le trvDocuments_SelectedNodeChanged est traité après le Page_Load de ma page principale.
    J'ai essayé avec tous les autres évènements, et c'est pareil.

    Mais tu me dis que je peux remplir mon dataSource après le page_Load... Mais comment ?

  4. #4
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bon, j'ai fait ça:

    Dans le page_load de la page principale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if ((Session["tvMode"] != null) AND (Session["tvMode"].ToString() == "2")) {
      SqlDataSourceDocuments.SelectCommand = "MaRequete1";
      ...
    } else  {
      SqlDataSourceDocuments.SelectCommand = "MaRequete2";
      ...
    }
    Dans le bouton_clic de recherche de la page principale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Session["tvMode"] = "2"; // Pour garder la requete de recherche avancée lors du tri
    SqlDataSourceDocuments.SelectCommand = "MaRequete1";
    Et dans le node_Selected du control:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Session["tvMode"] = "1"; // Pour garder la requete de recherche treeview lors du tri
    ((SqlDataSource)this.Parent.Parent.Parent.Parent.FindControl("SqlDataSourceDocuments")).SelectCommand = "MaRequete2";
    C'est super pas propre, super pas optimisé (car il fait d'abord un requete puis l'autre dans le même chargement) mais ça fonctionne.

    Si quelqu'un a mieux.
    -----------------------------------

Discussions similaires

  1. [CSS] Savoir dans quel menu on est pour mon site
    Par Aspic dans le forum Mise en page CSS
    Réponses: 24
    Dernier message: 17/04/2007, 22h58
  2. [VBA-E] mise en forme texte dans le noeud d'une treeview
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/08/2006, 16h16
  3. Réponses: 28
    Dernier message: 29/07/2006, 16h04
  4. Réponses: 1
    Dernier message: 20/03/2006, 13h30
  5. Savoir dans quelle ligne de code je me situe
    Par FrankOVD dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2005, 22h35

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