2015-10-19 104 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