2009-06-08 11 views
4

Pour une raison quelconque, tout ce que je place dans une zone de texte n'est pas enregistré. Quelqu'un pourrait-il me dire pourquoi cela se passe? Voici le code simplifié J'utilise:Zone de texte Valeur non enregistrée

.aspx

<body> 
    <form id="form1" runat="server"> 
    <div> 
    Try this: 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
    </div> 
    </form> 
</body> 

.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    TextBox1.Text = "Test 1"; 
} 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Response.Write(TextBox1.Text); 
} 

Le Response.Write est toujours d'être "Test 1", peu importe ce que je mettre dedans. Merci pour votre aide!

+0

Juste un petit commentaire: Ne pas utiliser Response.Write() dans vos gestionnaires d'événements - comme la page n'a pas encore commencé le rendu, le texte sera très probablement au mauvais endroit. Au lieu de cela, utilisez un contrôle Label ou Literal. –

Répondre

17

Vous devez vérifier PostBack dans votre événement Page_Load avant de définir. Sinon, le Page_Load écrasera toujours ce que vous entrez dans la zone de texte.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
    TextBox1.Text = "Test 1"; 
    } 
} 
Questions connexes