【发布时间】:2011-02-15 15:31:46
【问题描述】:
我有一个带有两个单选按钮的 ASP.NET 页面。这些按钮使用自动回发来运行服务器端逻辑。如果您选择第二个按钮,则页面回发并正确显示选择了第二个按钮的消息。如果现在单击浏览器后退按钮,则按钮 2 的状态保持选中状态,而消息恢复为已选中按钮 1。这会导致明显不受欢迎的情况,因为单选按钮和消息的状态现在不同步。我知道这是一个缓存问题,但我觉得奇怪的是浏览器会记住标签的先前状态,而不是单选按钮的先前状态。
处理这种情况的最佳方法是什么?在这种情况下,禁用缓存或使用后退按钮是不可取的。
以下代码示例展示了这种行为:
[表格:]
<asp:RadioButton ID="rb1" runat="server" AutoPostBack="true" Text="Button1" OnCheckedChanged="rb_CheckedChanged"
GroupName="rbgroup" Checked="true" />
<br />
<asp:RadioButton ID="rb2" runat="server" AutoPostBack="true" Text="Button2" OnCheckedChanged="rb_CheckedChanged"
GroupName="rbgroup" />
<br />
<hr />
<asp:Label ID="lbl1" runat="server">Button 1</asp:Label>
[代码隐藏:]
protected void rb_CheckedChanged(object sender, EventArgs e)
{
if (rb1.Checked == true)
lbl1.Text = "Button 1";
else
lbl1.Text = "Button 2";
}
【问题讨论】:
标签: c# asp.net webforms radio-button