2010-09-30 4 views
4
<asp:CheckBox ID="isSubscribed" runat="server" /> Subscribe to mailing list?<br /><br /> 
<asp:Button runat="server" CssClass="btn" ID="btnPrefUpdate" OnClick="updatePrefs" Text="Update" /><br /><br /> 

Ce feu dans le code derrière:case ASP.net toujours cochée

protected void updatePrefs(object sender, EventArgs e) 
{ 
    Response.Write(isSubscribed.Checked); 
    Response.End(); 
} 

Mais il est toujours à venir comme vrai! Que ce soit vérifié ou non! Je sais que je me trompe, est-ce que quelqu'un pourrait me montrer comment accéder correctement à cette valeur?

+0

Avez-vous un élément dans votre événement Page_Load qui le définit comme vrai? Avez-vous essayé de mettre "isSubscribed.Checked.ToString"? – Curt

+0

Ah oui, dans mon chargement de la page j'ai isSubscribed.Checked = Master.isSubscribed; Comment est-ce que j'obtiens l'événement sur le clic pour courir avant celui-ci? –

+0

Est-il dans un UpdatePanel? – jmservera

Répondre

9

comme @Curt dit, il me semble que vous avez quelque chose dans votre page_load. si vous définissez la valeur dans Page_Load assurez-vous qu'il se trouve dans l'instruction if suivante

if(!Page.isPostBack) 
{ 
    isSubscribed.Checked = true; 
} 
1

Vous le faites de la bonne façon. La propriété booléenne Checked devrait juste dire Vrai ou Faux (je l'ai même testé). Est-ce que votre Page_Load fait quelque chose avec la case à cocher? En d'autres termes, la valeur de la case à cocher est en quelque sorte (re) définie lorsque le post est en cours (la publication du clic sur le bouton).

Dans la méthode Page_Load vous pouvez inclure:

if (!this.IsPostBack) 
{ 
// Set default or loaded values for controls 
} 
+0

Oui, bêtement il le définit à la valeur de profil dans le chargement de la page, comment puis-je arrêter ce code de chargement avant l'événement de clic de bouton? –

+0

@Tom Gullen voir ma réponse, ou vous pourriez placez-le dans la page aspx – TheLukeMcCarthy

+0

if (! this.IsPostBack) // Fais ton truc. –

Questions connexes