asp.net TextChanged事件函数不起作用

fzsnzjdm  于 2022-11-19  发布在  .NET
关注(0)|答案(4)|浏览(259)

我有一个简单的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事件如果没有触发,为什么??。我该怎么办??

slwdgvem

slwdgvem1#

您需要在产生事件的TextBox上启用AutoPostBack
你的代码的问题是,它是一个服务器端事件,试图调用一个客户端事件。文本需要在TextBox1中输入,然后它将导致AutoPostBack

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

根据您的需要,使用JavaScript将TextBox1中的值填充到TextBox2中可能会更好。

nwlqm0z1

nwlqm0z12#

TextBox是服务器控件,而文本更改是服务器事件。它并不意味着在每次键入字母时都被激发,而是在文本值与上次服务器回发时的值不同时被激发。
如果您需要在每次按下字母时运行某种代码,则需要使用VB或JavaScripting注册和处理客户端事件OnKeyUp/OnKeyDown/OnKeyPress

mum43rcc

mum43rcc3#

在.Aspx上,添加TextBox:

OnTextChanged="TextBox1_TextChanged"
dced5bon

dced5bon4#

我知道我迟到了,但我还是想告诉你我的故事。
我在只读TextBox上有一个文本更改事件处理程序。
JavaScript已将TextBox更改为读/写,但事件未激发。可能是因为后端仍认为它是只读的。
我通过将R/O和R/W之间的所有更改移到后端来修复这个问题。现在它工作了。

相关问题