12 Stimmen

Problem mit Textbox innerhalb updatepanel - nicht verursachen OnTextChanged Ereignis

Ich habe die folgende Situation: Ich habe ein Textfeld innerhalb eines Ajax-Updatepanels. Wo auch immer der Benutzer in das Textfeld tippt, muss ich eine Nachricht anzeigen (unterschiedliche Nachricht, die auf den Benutzer eingegebenen Daten abhängt).

     <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
        <ContentTemplate>
            <asp:TextBox ID="txtMyTexbox" runat="server" Width="500px" OnTextChanged="txtMyTexbox_TextChanged" AutoPostBack="true"></asp:TextBox>
            <br />
            <asp:Label ID="lblMessage" runat="server" CssClass="errorMessage" Visible="false">Hello World</asp:Label>
         </ContentTemplate>
            <Triggers>
             <asp:AsyncPostBackTrigger ControlID="txtMyTexbox" />
            </Triggers>
      </asp:UpdatePanel>

Auf der Serverseite habe ich beim Laden der Seite folgendes geschrieben

ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(txtMyTexbox);           

und die Methode wie folgt

protected void txtMyTexbox_TextChanged(object sender, EventArgs e)
    {           
            if (.....)
            {
                lblMessage.Visible = false;
            }
            else
            {
                lblMessage.Visible = true;
            }            
    }

Mein Problem ist jetzt, dass: wenn der Benutzer in das Textfeld tippen es nicht OnTextChanged Ereignis verursachen.

Habe ich etwas verpasst?

0voto

Samar jann Punkte 1

Das Steuerelement, dessen ID im AsyncPostBackTrigger verwendet wird, muss sich außerhalb des Update-Panels befinden (das den Async-Aufruf auslöst), etwa so:

<tr>
    <td colspan="4"><asp:Label ID="lblEnter_Successfully"  Text="Enter Record SuccessFully" runat="server" Visible ="false" ForeColor ="Blue" Font-Size ="Larger" Font-Bold ="true"></asp:Label>
    </td>
</tr>                                           
</table>                
</ContentTemplate>

  <Triggers>
     <asp:AsyncPostBackTrigger ControlID = "Button_Save" EventName ="Click"/>
  </Triggers>                       

</asp:UpdatePanel>
            <table>
              <tr>
                <td width = "472px" align ="right">             
                    <asp:Button ID="Button_Save" runat="server" Text="Save"  OnClientClick ="return URLValidation();"/>
                    <asp:Button ID="Button_Clear" runat="server" Text="Clear"/>
                </td>
              </tr>
            </table>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X