Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Nouveau Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    février 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : février 2008
    Messages : 115
    Points : 30
    Points
    30

    Par défaut Problème de FindControl

    Bonjour, je bosse en c# sous VS2010.

    Je veux créer en code behind des contrôles (variables récupérées automatiquement via mes reports).

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     ReportParameterInfoCollection parameters = this.rv_Report.ServerReport.GetParameters();
     
            if (parameters.Count > 0)
            {
                foreach (ReportParameterInfo param in parameters)
                {
                    if (param.DataType == ParameterDataType.DateTime)
                    {
                        Label lb_date = new Label();
                        lb_date.Text = param.Name + " : ";
                        TextBox tb_date = new TextBox();
                        tb_date.ID = "tb_" + param.Name;
                        tb_date.ClientIDMode = ClientIDMode.Static;
                        tb_date.CssClass = "datepicker";
     
                        l_parameters.Controls.Add(lb_date);
                        l_parameters.Controls.Add(tb_date);
                    }
                }
            }
    Et ensuite, je veux récupérer lors de la validation du contenu de mes paramètres (ici, la date), la valeur contenue dans ma TextBox

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
                ReportParameter[] tabParams = new ReportParameter[Parameters.Count];
     
                int count = 0;
                foreach (ReportParameterInfo param in Parameters)
                {
                    if (param.DataType == ParameterDataType.DateTime)
                    {
                        tabParams[count] = new ReportParameter(param.Name, ((TextBox)cph.FindControl("tb_"+param.Name)).Text);
                        count++;
                    }
                }
    Pourtant, il me renvoie toujours "null"...

    Avez-vous des idées?

    J'ai essayé avec les FindControl, FindControlRecursive, ... Mais rien de rien, il ne voit pas mon contrôle.
    Par contre, si je crée mon contrôle en .aspx et l'appelle ensuite, ça fonctionne.

    De plus, voici mon code source de la page
    Code :
    1
    2
    3
    4
     
     <div class="parameters">
            <span id="MainContent_l_parameters"><span>DateToSearchPar : </span><input name="ctl00$MainContent$tb_DateToSearchPar" type="text" id="MainContent_tb_DateToSearchPar" class="datepicker" /></span><br />
        </div>

  2. #2
    Membre chevronné
    Homme Profil pro Etienne Mermillod
    Inscrit en
    février 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Nom : Homme Etienne Mermillod
    Âge : 29

    Informations forums :
    Inscription : février 2007
    Messages : 442
    Points : 622
    Points
    622

    Par défaut

    Salut,

    As-tu essayé d'enlever :
    Code :
    tb_date.ClientIDMode = ClientIDMode.Static;
    Je pense que c'est peut être la cause de ton problème, mais à prendre avec des pincettes.

  3. #3
    Nouveau Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    février 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : février 2008
    Messages : 115
    Points : 30
    Points
    30

    Par défaut

    Bonjour,

    J'ai trouvé la réponse, il faut réinitialiser les contrôles à chaque chargement de la page.

    Le postback me posait problème.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •