TextChanged事件功能不起作用

时间:2011-02-17 13:52:48

标签: asp.net

我有一个简单的aspx文件

<%@ 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>

这是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

现在的问题是,即使我在textBox1中键入了一些textchanged事件,如果没有触发为什么??我该怎么办?

4 个答案:

答案 0 :(得分:25)

您需要在TextBox上启用导致该事件的AutoPostBack

代码问题是它试图调用客户端事件的服务器端事件。需要在TextBox1中输入文字,然后才会生成AutoPostBack

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

根据您的需要而定。最好使用JavaScript将TextBox2的值与TextBox1一起填充。

答案 1 :(得分:3)

您的TextBox是服务器控件,更改的文本是服务器事件。每次键入一个字母时都不会触发它,而是如果文本值与上一次服务器回发时的值不同则触发它。

如果每次按下一个字母都需要运行某种代码,则需要使用VB注册和处理客户端事件OnKeyUp / OnKeyDown / OnKeyPress或JavaScript编程。

答案 2 :(得分:1)

在你的.Aspx上,添加你的TextBox:

OnTextChanged="TextBox1_TextChanged"

答案 3 :(得分:0)

我知道我参加派对的时间已经很晚了,但我仍然想讲述我的故事。

我在只读TextBox上有一个文本更改事件处理程序。

JavaScript将TextBox更改为读/写,但事件不会触发。可能是因为后端仍然认为它是只读的。

我通过将R / O和R / W之间的所有更改移动到后端来解决问题。现在它有效。