Précédent   Forum du club des développeurs et IT Pro > Dotnet > Langages
Langages Forum d'entraide sur les langages de développement du Framework .NET (C#, VB.NET, C++, F#, etc.).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/11/2012, 14h04   #1
Erazion
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 115
Points : 30
Points : 30
Envoyer un message via MSN à Erazion
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>
Erazion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 16h15   #2
mermich
Membre chevronné
 
Homme Etienne Mermillod
Inscription : février 2007
Messages : 442
Détails du profil
Informations personnelles :
Nom : Homme Etienne Mermillod
Âge : 28

Informations forums :
Inscription : février 2007
Messages : 442
Points : 622
Points : 622
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.
mermich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2012, 09h52   #3
Erazion
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2008
Messages : 115
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 115
Points : 30
Points : 30
Envoyer un message via MSN à Erazion
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.
Erazion est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h57.


 
 
 
 
Partenaires

Hébergement Web