我创建了一个简单的示例来展示我遇到的问题。在页面上放置一个asp.net复选框和一个asp.net文本框。在后台代码中(使用vb.net),当复选框被选中时,在文本框中显示一些内容,并在未选中时显示一个空文本框。很简单,对吧?现在来回多次切换复选框的选中/未选中状态,文本框有内容/无内容。一切正常 - 对吧?
现在在浏览器上点击返回按钮几次。每次点击返回按钮时显示的结果是相反的 - 复选框被选中,但文本框中没有任何内容。复选框未被选中,文本框中有文本。无论您将vb代码放在哪里(页面加载,checkedchanged)- 结果都相同。
我认为这与页面被保存在缓存中的时间有关。就像页面在复选框触发“click”事件时被保存在缓存中,但填充文本框的代码尚未被触发一样。然而,我也可能完全错了,可能是我做错了一些非常简单的事情。
任何想法/思路/帮助将不胜感激。
示例代码:
ASPX:
现在在浏览器上点击返回按钮几次。每次点击返回按钮时显示的结果是相反的 - 复选框被选中,但文本框中没有任何内容。复选框未被选中,文本框中有文本。无论您将vb代码放在哪里(页面加载,checkedchanged)- 结果都相同。
我认为这与页面被保存在缓存中的时间有关。就像页面在复选框触发“click”事件时被保存在缓存中,但填充文本框的代码尚未被触发一样。然而,我也可能完全错了,可能是我做错了一些非常简单的事情。
任何想法/思路/帮助将不胜感激。
示例代码:
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