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 :

Parcourir les controles (webcontrol) d'une page


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut Parcourir les controles (webcontrol) d'une page
    Bonjour,

    j'ai une page composée d'un certain nombre de webcontrol.

    A un moment de mon code ou je ne suis plus sur ma page j'arrive à récupérer une référence dessus, mais je ne sais pas comment parcourir les webcontrols de ma page pour récupérer celui du type qui m'intéresse.

    J'ai bien tenté d'utiliser la collection controls sur la page (Page.controls) mais je suis surpris de voir quand j'essaie de la parcourir qu'il n'y a que 3 éléments dedans et évidemment je ne trouve pas le webform qui m'intéresse.

    C'est peut-etre tout simple pour vous mais en tant que débutant ASP.net je suis un peu perdu.

    Une idée?

    Merci d'avance pour toute aide

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Est ce que tu as essayé de parcourir récursivement les controles et leurs controles enfants ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 270
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
        private void findControls(ControlCollection controls)
            {    
                foreach (Control control  in controls)
                {
                    if (control.HasControls()) 
                    {
                        findControls(control.Controls);
                    }
                    else
                    {
                        //ton traitement
                    }
                }
            }
    et tu appelles cette procédure en lui passant page.controls

  4. #4
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Ajoute un pti test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
        private void findControls(ControlCollection controls)
            {    
                foreach (Control control  in controls)
                {
                    if(/*c'est le control que je veut*/)
                    {
                        //ton traitement
                    }
                    else
                    {
                      if (control.HasControls()) 
                      {
                          findControls(control.Controls);
                      }
                      else
                      {
                             // Not found :(
                      }
                    }
     
                }
            }

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut
    Merci pour l'aide, voici comme je m'en suis sorti hier soir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    'fonction récursive permettant de retourner le premier TaskResult trouvé dans les controles de la page
            ' TYPE :    TaskResults : le taskResults s'il a été trouvé, nothing si non trouvé
            ' IN :  p_controls : la collection de controle dans laquelle chercher le TaskResult
            Private Function getTaskResults(ByVal p_controls As ControlCollection) As TaskResults
     
                getTaskResults = Nothing
                Dim control As Control
     
                For Each control In p_controls
                    If control.HasControls() Then
                        If TypeOf control Is ESRI.ArcGIS.ADF.Web.UI.WebControls.TaskResults Then
                            getTaskResults = CType(control, ESRI.ArcGIS.ADF.Web.UI.WebControls.TaskResults)
                            Return getTaskResults
                        End If
                        getTaskResults = getTaskResults(control.Controls)
                        If Not getTaskResults Is Nothing Then
                            Return getTaskResults
                        End If
                    End If
                Next
     
            End Function
    J'ai cherché longtemps car en fait je ne savais pas que le webcontrol que je cherchais a lui même une collection de controls, ce qui est pourtant assez logique après reflexion ^^

Discussions similaires

  1. Parcourir les controles d'une barre d'outil.
    Par jeandadaf dans le forum VB.NET
    Réponses: 1
    Dernier message: 13/12/2009, 17h34
  2. Parcourir les controls d'une form
    Par zit_zit dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2008, 18h59
  3. Parcourir les différentes valeurs d'une énumération
    Par mister3957 dans le forum Général VBA
    Réponses: 4
    Dernier message: 09/03/2008, 09h07
  4. [RegEx] extraire les liens hypertexte d'une page web
    Par lalama dans le forum Langage
    Réponses: 1
    Dernier message: 22/03/2006, 10h43
  5. [VB.NET] extraire tt les controls prensents dans une form.
    Par Splash dans le forum Windows Forms
    Réponses: 7
    Dernier message: 21/12/2005, 19h12

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