我有一个简单的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条答案
按热度按时间slwdgvem1#
您需要在产生事件的TextBox上启用
AutoPostBack
。你的代码的问题是,它是一个服务器端事件,试图调用一个客户端事件。文本需要在
TextBox1
中输入,然后它将导致AutoPostBack
。根据您的需要,使用JavaScript将
TextBox1
中的值填充到TextBox2
中可能会更好。nwlqm0z12#
TextBox是服务器控件,而文本更改是服务器事件。它并不意味着在每次键入字母时都被激发,而是在文本值与上次服务器回发时的值不同时被激发。
如果您需要在每次按下字母时运行某种代码,则需要使用VB或JavaScripting注册和处理客户端事件
OnKeyUp
/OnKeyDown
/OnKeyPress
。mum43rcc3#
在.Aspx上,添加TextBox:
dced5bon4#
我知道我迟到了,但我还是想告诉你我的故事。
我在只读TextBox上有一个文本更改事件处理程序。
JavaScript已将TextBox更改为读/写,但事件未激发。可能是因为后端仍认为它是只读的。
我通过将R/O和R/W之间的所有更改移到后端来修复这个问题。现在它工作了。