Saltar al contenido

ASP.NET OnTextChanged no se activa desde el interior de un panel de actualización

Solución:

<asp:TextBox AutoPostBack="true" OnTextChanged="thingId_TextChanged" ID="thingId" runat="server"></asp:TextBox>

AutoPostBack en el cuadro de texto activará la devolución cuando se pierda el foco del cuadro de texto. TextChanged El evento se activará en cualquier post-back posterior (puede deberse a un clic en el botón o al cambio de enfoque del cuadro de texto). Entonces necesitas asegurarte

  1. Después de que se cambia el texto, se está moviendo fuera del cuadro de texto
  2. Los controles que cambie son parte del panel de actualización (puede ser un panel de actualización diferente). Si no hay parte de ningún panel de actualización, esos cambios no se reflejarán en el lado del cliente.

Supongo que probablemente estés sufriendo del número 2. Puede usar una herramienta como Fiddler (o Firebug en FireFox) para verificar si el navegador está activando la solicitud AJAX (XHR) cuando el foco se pierde en el cuadro de texto.

Como publicó @VinayC, AutoPostBack significa que la página se enviará al servidor cuando su TextBox pierde el foco. Ningún evento incorporado causa devolución de datos en cada carácter agregado a una entrada de texto, y por una buena razón. UpdatePanel las devoluciones de datos no hacen que la página parpadee, pero pueden ser tan pesadas como una devolución de datos completa.

Si desea evitar esto, puede darle a su cuadro de texto un cliente onchanged controlador de eventos, cuyo JavaScript se construirá a partir de Page.ClientScript.GetPostBackEventReference().

los correcto La solución sería utilizar una llamada al método AJAX desde su código JavaScript en lugar de una UpdatePanel devolución de datos parcial en onchanged.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *