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 :

Modifier un contrôle sur une page


Sujet :

ASP.NET

  1. #1
    Membre averti
    Homme Profil pro
    Freelance
    Inscrit en
    Juillet 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 45
    Par défaut Modifier un contrôle sur une page
    Bonjour,
    J'ai soucis qui me paraît étrange. J'aimerai tout simplement arriver à modifier le contenu d'un label depuis le code behind.

    Pour vous situer l'environnement de mon problème j'ai pris un projet WebApplication tout simple. Dans la page "About.apsx" j'ai ajouté un label "label1". Depuis le .cs je peux faire :

    Mais si je prend une autre page comme "Register.aspx" qui se trouve dans le dossier "Account", et que j'ajoute un label "label1", dans le .cs je ne peux pas faire :

    => "n'existe pas dans le contexte actuel"

    ni même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Label lbl = (Label)this.Page.FindControl("label1");
    lbl.text = "toto";
    => null pointeur exception...
    (j'ai utilisé cette méthode pour atteindre des labels dans une datalist sur la page About.aspx et ça fonctionne très bien)

    Je ne comprend pas pourquoi je n'arrive pas à atteindre les contrôles sur certaines pages...

    Si quelqu'un veut bien éclairer ma lanterne ^^
    Merci
    Haelle

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Bonjour,

    Pourrais-tu montrer le code de ta page .aspx ainsi que celui du fichier .cs associé (s'il y en a un) pour la partie qui pose problème ?

  3. #3
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Bonjour,

    vérifies dans le fichier Register.Designer.cs que ton controle Label a bien été ajouté.

  4. #4
    Membre averti
    Homme Profil pro
    Freelance
    Inscrit en
    Juillet 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 45
    Par défaut
    @Bizet : en effet .Designer.cs est pratiquement vide, il y a une dizaine de contrôle sur la page et aucun n'apparaît dans le designer... Il n'est pas sensé s'autogénérer ???

    J'ai supprimé le designer.cs et j'ai cliqué sur "convertir en application web" sur le .aspx pour regénérer le designer.cs, mais il reste toujours aussi vide... Je pourrai le modifier à la main mais j'aimerai trouver d'où vient le soucis...

    voilà pour le code :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    <%@ Page Title="S'inscrire" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="True"
        CodeBehind="Register.aspx.cs" Inherits="ProjetBiddingTest.Account.Register" culture="auto" meta:resourcekey="PageResource1" uiculture="auto" %>
     
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
     
    <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    </asp:Content>
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
        <asp:NoBot ID="nb" runat="server" CutoffMaximumInstances="5" CutoffWindowSeconds="30" ResponseMinimumDelaySeconds="2" />
        <asp:ToolkitScriptManager ID="ScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
        <asp:CreateUserWizard ID="RegisterUser" runat="server" EnableViewState="False" 
            OnCreatedUser="RegisterUser_CreatedUser" 
            meta:resourcekey="RegisterUserResource1">
            <LayoutTemplate>
                <asp:PlaceHolder ID="wizardStepPlaceholder" runat="server"></asp:PlaceHolder>
                <asp:PlaceHolder ID="navigationPlaceholder" runat="server"></asp:PlaceHolder>
            </LayoutTemplate>
            <WizardSteps>
                <asp:CreateUserWizardStep ID="RegisterUserWizardStep" runat="server" 
                    meta:resourcekey="RegisterUserWizardStepResource1">
                    <ContentTemplate>
                        <h2>
                            <asp:Label ID="Label1" runat="server" meta:resourcekey="Label1Resource1" />
                        </h2>
                        <p>
                            <asp:Label ID="Label2" runat="server" meta:resourcekey="Label2Resource1" />
                        </p>
                        <p>
                            <asp:Label ID="Label3" runat="server" meta:resourcekey="Label3Resource1" />
                            <asp:Label ID="MinPasswordCaracteres" runat="server" />
                            <asp:Label ID="Label5" runat="server" meta:resourcekey="Label5Resource1" />
                        </p>
                        <span class="failureNotification">
                            <asp:Literal ID="ErrorMessage" runat="server" 
                            meta:resourcekey="ErrorMessageResource1"></asp:Literal>
                        </span>
                        <asp:ValidationSummary ID="RegisterUserValidationSummary" runat="server" CssClass="failureNotification" 
                             ValidationGroup="RegisterUserValidationGroup" 
                            meta:resourcekey="RegisterUserValidationSummaryResource1"/>
                        <div class="accountInfo">
                            <fieldset class="register">
                                <legend><asp:Label ID="Label4" runat="server" meta:resourcekey="Label4Resource1" /></legend>
                                <p>
                                    <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName" 
                                        meta:resourcekey="UserNameLabelResource1" Text="Nom d'utilisateur&nbsp;:"></asp:Label>
                                    <asp:TextBox ID="UserName" runat="server" CssClass="textEntry" 
                                        meta:resourcekey="UserNameResource1" />
                                    <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" 
                                         CssClass="failureNotification" 
                                        ErrorMessage="Un nom d'utilisateur est requis." ToolTip="Un nom d'utilisateur est requis." 
                                         ValidationGroup="RegisterUserValidationGroup" 
                                        meta:resourcekey="UserNameRequiredResource1" Text="*" />
                                </p>
                                <p>
                                    <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email" 
                                        meta:resourcekey="EmailLabelResource1" Text="Adresse de messagerie&nbsp;:" />
                                    <asp:TextBox ID="Email" runat="server" CssClass="textEntry" 
                                        meta:resourcekey="EmailResource1" />
                                    <asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email" 
                                         CssClass="failureNotification" 
                                        ErrorMessage="Une adresse de messagerie est requise." ToolTip="Une adresse de messagerie est requise." 
                                         ValidationGroup="RegisterUserValidationGroup" 
                                        meta:resourcekey="EmailRequiredResource1" Text="*" />
                                </p>
                                <p>
                                    <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password" 
                                        meta:resourcekey="PasswordLabelResource1" Text="Mot de passe&nbsp;:" />
                                    <asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" 
                                        TextMode="Password" meta:resourcekey="PasswordResource1" />
                                    <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" 
                                         CssClass="failureNotification" ErrorMessage="Un mot de passe est requis." ToolTip="Un mot de passe est requis." 
                                         ValidationGroup="RegisterUserValidationGroup" 
                                        meta:resourcekey="PasswordRequiredResource1" Text="*"/>
                                </p>
                                <p>
                                    <asp:Label ID="ConfirmPasswordLabel" runat="server" 
                                        AssociatedControlID="ConfirmPassword" 
                                        meta:resourcekey="ConfirmPasswordLabelResource1" 
                                        Text="Confirmer le mot de passe&nbsp;:" />
                                    <asp:TextBox ID="ConfirmPassword" runat="server" CssClass="passwordEntry" 
                                        TextMode="Password" meta:resourcekey="ConfirmPasswordResource1" />
                                    <asp:RequiredFieldValidator ControlToValidate="ConfirmPassword" 
                                        CssClass="failureNotification" Display="Dynamic" 
                                         ErrorMessage="La confirmation du mot de passe est requise." 
                                        ID="ConfirmPasswordRequired" runat="server" 
                                         ToolTip="La confirmation du mot de passe est requise." 
                                        ValidationGroup="RegisterUserValidationGroup" 
                                        meta:resourcekey="ConfirmPasswordRequiredResource1" Text="*" />
                                    <asp:CompareValidator ID="PasswordCompare" runat="server" 
                                        ControlToCompare="Password" ControlToValidate="ConfirmPassword" 
                                         CssClass="failureNotification" Display="Dynamic" ErrorMessage="Le mot de passe et le mot de passe de confirmation doivent correspondre."
                                         ValidationGroup="RegisterUserValidationGroup" 
                                        meta:resourcekey="PasswordCompareResource1" Text="*" />
                                </p>
                            </fieldset>
                            <p class="submitButton">
                                <asp:Button ID="CreateUserButton" runat="server" CommandName="MoveNext" Text="Créer un utilisateur" 
                                     ValidationGroup="RegisterUserValidationGroup" 
                                    meta:resourcekey="CreateUserButtonResource1"/>
                            </p>
                            <asp:PasswordStrength ID="PasswordStrength2" runat="server" TargetControlID="Password" 
                    DisplayPosition="BelowLeft"
                    StrengthIndicatorType="BarIndicator" 
                    BarBorderCssClass="BarBorder"
                    PreferredPasswordLength="10" 
                    PrefixText="Strength:" 
                    TextStrengthDescriptions="Very Poor;Weak;Average;Strong;Excellent"
                    StrengthStyles="barIndicator_poor; barIndicator_weak; barIndicator_good; barIndicator_strong; barIndicator_excellent" 
                    MinimumNumericCharacters="1" 
                    MinimumSymbolCharacters="1"
                    TextStrengthDescriptionStyles="barIndicator_poor; barIndicator_weak; barIndicator_good; barIndicator_strong; barIndicator_excellent"
                    RequiresUpperAndLowerCaseCharacters="true" />
                        </div>
                    </ContentTemplate>
                    <CustomNavigationTemplate>
                    </CustomNavigationTemplate>
                </asp:CreateUserWizardStep>
    <asp:CompleteWizardStep runat="server" meta:resourcekey="CompleteWizardStepResource1"></asp:CompleteWizardStep>
            </WizardSteps>
        </asp:CreateUserWizard>
    </asp:Content>
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
     
    namespace ProjetBiddingTest.Account
    {
        public partial class Register : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
             // Ici je ne peux accéder à rien....
             // Label1.text = "toto"; ne fonctionne pas
     
            }
     
            protected void RegisterUser_CreatedUser(object sender, EventArgs e)
            {
                FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);
     
                string continueUrl = RegisterUser.ContinueDestinationPageUrl;
                if (String.IsNullOrEmpty(continueUrl))
                {
                    continueUrl = "~/";
                }
                Response.Redirect(continueUrl);
            }
     
        }
    }
    [EDIT]
    Si je modifie à la main le designer.cs pour ajouter un Label qui m'intéresse Visual Studio l'accepte mais lorsque je démarre le débogage j'ai un null pointeur exception sur le code behind

  5. #5
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Salut

    Ce n'est pas une très bonne idée de supprimer le fichier .Designer.cs.

    Ton Label n'est pas dans la page mais dans un composant asp : CreateUserWizardStep

    C'est donc normal que le code ne le trouve pas.

    Il faut que tu utilises une instruction de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Label monLabel = (Label)RegisterUserWizardStep.FindControl("label1");

  6. #6
    Membre averti
    Homme Profil pro
    Freelance
    Inscrit en
    Juillet 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 45
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Label lbl = (Label)RegisterUserWizardStep.FindControl("Label1");
    lbl.Text = "toto";

    null pointeur exception...
    Là par contre c'est moins drôle

    J'ai aussi tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Label lbl = (Label)RegisterUser.FindControl("Label1");
    lbl.Text = "toto";
    Pareil, null pointeur exception

  7. #7
    Membre averti
    Homme Profil pro
    Freelance
    Inscrit en
    Juillet 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 45
    Par défaut
    solution trouvée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Label lbl = Label lbl = (Label)RegisterUserWizardStep.ContentTemplateContainer.FindControl("Label1");
    lbl.text = "toto";

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/09/2008, 19h17
  2. Réponses: 3
    Dernier message: 21/09/2008, 09h06
  3. [Tableaux] Modifier un tableau sur une page en PHP
    Par leclone dans le forum Langage
    Réponses: 12
    Dernier message: 02/01/2007, 14h06
  4. Réponses: 13
    Dernier message: 23/02/2006, 11h42
  5. [RaveReport] - Bloquer groupe sur une page
    Par muaddib dans le forum Rave
    Réponses: 3
    Dernier message: 25/02/2003, 16h21

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