2011-02-17 12 views
8

Tengo un archivo aspx sencillafunción de eventos TextChanged no trabajar

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test4.aspx.vb" Inherits="test4" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<body> 
<form id="form1" runat="server"> 
    <div id="content"> 
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <br /> 
     <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
    </div> 
</form> 
</body> 
</html> 

Y este es el archivo de código test4.aspx.vb

Partial Class test4 
Inherits System.Web.UI.Page 

Protected Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged 
    TextBox2.Text = TextBox1.Text 
End Sub 
End Class 

Ahora el problema es que incluso si escribo algo en the textBox1 el evento textbuged si no se activa por qué? ¿¿Que debería hacer??

+2

Debe realizar una devolución de datos en el servidor, luego se levanta – AGuyCalledGerald

Respuesta

23

Debe habilitar AutoPostBack en el TextBox que da como resultado el evento.

El problema con su código es su evento del lado del servidor que intenta invocar un evento del lado del cliente. El texto debe ingresarse en TextBox1 y luego dará como resultado el AutoPostBack.

<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"></asp:TextBox> 

De acuerdo con su necesidad sin embargo. Puede ser mejor llenar el TextBox2 con el valor TextBox1 usando JavaScript.

3

Su TextBox es un control de servidor, y el texto modificado es un evento de servidor. No está destinado a ser disparado cada vez que escribe una letra, sino que se dispara si el valor del texto es diferente del valor en el momento de la última publicación del servidor.

Si necesita ejecutar algún tipo de código cada vez que se pulsa una carta que tendrá que registrar y controlar los eventos del lado del cliente OnKeyUp/OnKeyDown/OnKeyPress con VB o JavaScripting.

1

En su .aspx, agrego en su Cuadro de texto:

OnTextChanged="TextBox1_TextChanged" 
+1

Esto es vb.net, mire al final de la declaración del método: "Maneja TextBox1.TextChanged" La parte aspx no es necesaria si se declara la cláusula maneja. – asawyer

0

Sé que llego tarde a la fiesta con éste, pero todavía quería contar mi historia.

Tenía un controlador de eventos de texto modificado en un TextBox de solo lectura.

JavaScript cambió el TextBox para leer/escribir, pero el evento no se desencadenó. Probablemente porque el back-end todavía pensaba que era de solo lectura.

Resolví el problema moviendo todos los cambios entre R/O y R/W al back-end. Ahora funciona.