2011-04-11 5 views
5

J'ai un TextBox dans ma page .aspx:événement OnTextChanged ne se déclenche pas

<ajax:UpdatePanel ID="UpdatePanel2" runat="server"> 
    <ContentTemplate> 
     <asp:TextBox ID="txtCity" AutoPostBack="true" OnTextChanged="txtCity_TextChanged" 
      Width="90%" runat="server" ></asp:TextBox> 
    </ContentTemplate> 
</ajax:UpdatePanel> 

code derrière:

protected void txtCity_TextChanged(object sender, EventArgs e) 
{ 
    lblMessage.Text = "you have typed:" + txtCity.Text; 
} 

Et pour lblMessage [sur la même page .aspx]:

<ajax:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:Label ID="lblMessage" runat="server" Text="" ></asp:Label> 
    </ContentTemplate> 
</ajax:UpdatePanel> 

Mais quand je tape dans le TextBox. lblMessage ne se met pas à jour.

Comment remédier à cela?

+0

Lorsque vous dites "quand je tape dans la zone de texte", vous voulez dire quand vous tapez dans la zone de texte et que vous l'envoyez correctement? –

+0

Même en supposant que la méthode côté serveur s'exécutera réellement (ce qui n'est pas le cas, sauf si vous l'envoyez comme Drackir le dit), vous oubliez d'appeler '.Update()' sur UpdatePanel1 après la mise à jour du texte Label. –

+0

@Drackir Ce que je veux, c'est afficher le texte que je tape dans la zone de texte sans publication. – Chris

Répondre

9

Il semble que vous pensiez que l'événement OnTextChange est déclenché pendant que vous tapez dans la zone de texte. Ce n'est pas vrai. OnTextChange est un événement côté serveur qui se déclenche uniquement lorsque la page (ou le panneau) est renvoyée. Si vous tapez une zone de texte sur une page, celle-ci n'est pas renvoyée et l'événement se déclenche une fois que vous avez envoyé le formulaire. Ce que vous voudriez vraiment faire dans ce cas, est d'utiliser du JavaScript avec l'événement JavaScript onkeypress pour mettre à jour le texte de l'étiquette lorsque les éléments sont tapés dans la TextBox. JavaScript est exécuté sur le client et ne nécessite pas de publier la page pour qu'elle s'exécute.

+0

C'est tellement triste. J'essayais la même chose): – Kristopher

Questions connexes