2011-02-17 51 views
8

我有一個簡單的aspx文件TextChanged事件功能無法正常工作

<%@ 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事件如果不解釋爲什麼??。我該怎麼辦??

+2

您應該回發到服務器,然後它被提出 – AGuyCalledGerald 2011-02-17 13:56:46

回答

23

您需要在導致該事件的文本框上啓用AutoPostBack

您代碼的問題是其嘗試調用客戶端事件的服務器端事件。文本需要輸入TextBox1然後它將導致AutoPostBack

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

根據您的需要。使用JavaScript填充TextBox2TextBox1的值可能會更好。

3

您的TextBox是一個服務器控件,並且文本已更改爲服務器事件。每次輸入一個字母並不意味着被激發,而是在文本值與最後一次服務器回發時的值不同的情況下被觸發。

如果您需要在每個信按您需要註冊並處理客戶端事件OnKeyUp/OnKeyDown/OnKeyPress用VB或JavaScript編程時間運行某種代碼。

1

在您的.aspx,增加您的文本框:

OnTextChanged="TextBox1_TextChanged" 
+1

這是vb.net,請看方法聲明的末尾:「Handles TextBox1.TextChanged」如果聲明瞭句柄子句,則aspx部分不是必需的。 – asawyer 2011-02-17 14:01:03

0

我知道我遲到這一個派對,但我還是想告訴我的故事。

我在只讀文本框上改變了文本事件處理程序。

JavaScript將TextBox更改爲可讀寫,但事件不會觸發。可能是因爲後端仍然認爲它是隻讀的。

我通過將R/O和R/W之間的所有更改移動到後端來解決了此問題。現在它可以工作。