2015-10-19 232 views
0

我有一個人將他們的地址輸入表單。然後我在表單上有第二部分,可能會或可能不會使用他們輸入的相同地址。我想要一個CheckBox,如果選中,將填入他們已經輸入的地址。但是我無法讓它工作。我正在使用VB.Net。我試過.Text以及.ToString(),但是無論哪種方式都不起作用。CheckedChanged event not firing

Protected Sub CheckBox_CheckedChanged(sender As Object, e As System.EventArgs) Handles CheckBox.CheckedChanged 
    If CheckBox.Checked Then 
     TextBoxAddressLine1Work.Text = TextBoxAddressLine1Local.Text 
    End If 
End Sub 
+0

您的代碼似乎沒問題。你的意思是「不工作」? – Fabio

+0

當我點擊複選框檢查或取消選中時,文本不會出現 – RockOn365

+0

檢查您的代碼(html),或許''TextBoxAddressLine1Local'的值在'CheckedChange'事件和頁面呈現之間的某個位置重置。而使服務器調用只爲複製價值到另一個控制似乎有點過度殺傷我。做到這一點在javascript – Fabio

回答

1

有兩個條件的CheckedChanged事件工作

  1. 此事件,除非將AutoPostBack屬性設置爲true不會發布頁面返回給服務器。
  2. CheckBox控件必須在發佈到服務器的帖子之間保留一些值才能使此事件正常工作。確保爲此控件啓用了視圖狀態。

有機會,你可能沒有的AutoPostBack屬性設置爲,如果沒有,那麼將其設置爲在下面的示例中

<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" /> 

補充建議:DO NOT使用關鍵字作爲您的標識符如變量名稱,控件ID例如在給定示例中,您已將指定的「CheckBox」作爲ID指定給CheckBox控件。這種命名約定會導致可能很難追蹤的異常。

+0

這工作。我將AutoPostBack更改爲true,並將ViewStateMode更改爲啓用。謝謝! – RockOn365