我创建了一个简单的示例来展示我遇到的问题。在页面上放置一个 asp.net 复选框,在同一页面上放置一个 asp.net 文本框。在后面的代码中(使用vb.net),放置在选中复选框时在文本框中显示内容的代码,并在未选中复选框时显示空文本框。很简单,对吧?现在来回切换几次,选中/取消选中复选框,文本框有内容/没有内容。一切正常 - 对吧?
现在点击浏览器上的后退按钮几次。每次单击后退按钮时显示的结果是相反的 - 复选框已选中,但文本框中没有任何内容。复选框未选中,并且文本框中有文本。将 vb 代码(页面加载,checkedchanged)放在哪里并不重要 - 结果相同。
我认为这与保存在缓存中的页面的时间有关。当复选标记触发“单击”事件时,页面之类的内容正在保存在缓存中,但填充文本框的代码尚未触发。再说一次,我可能完全不合时宜,这很简单,我做错了。
任何想法/想法/帮助将不胜感激。
示例代码:
ASPX:
<asp:CheckBox id="ChkBox1" runat="server" AutoPostBack="True" text="Sample" /><br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
VB:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If ChkBox1.Checked = True Then
TextBox1.Text = "Checked"
Else
TextBox1.Text = ""
End If
End Sub