我有一个页面属性
private Boolean Status
{
get { return (Boolean)Session["st"]; }
set { Session["st"] = value; }
}
然后我在同一页面中有一个按钮(在更新面板内)
<asp:UpdatePanel ID="UpdatePanel4" runat="server" >
<ContentTemplate>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" Width="150px"
OnClick="btnSubmit_Click" />
</ContentTemplate>
</asp:UpdatePanel>
&我已将此代码添加到页面加载以防止多次单击按钮
btnSubmit.Attributes.Add
("onclick", "this.disabled=true;" +
Page.ClientScript.GetPostBackEventReference(btnSubmit, "").ToString());
如果我将会话属性 ( Status
) 设置为true,然后单击按钮btnSubmit
,会话属性将自动设置为false,如果我删除禁用代码,它就可以正常工作。
任何想法是什么导致了这种意外行为?
更新 1:这只发生在Internet Explorer 10 (Windows 8) 上,在 Internet Explorer 8 和 Google Chrome 上运行良好....!
更新 2
我在页面加载中有这段代码
if (!Page.IsPostBack)
{
Status = false;
}
使用 Chrome,当我单击提交按钮时,它会将其视为 PostBack,因此它可以正常工作(不运行Status = false;
),但使用 IE 提交单击未识别为 PostBack,因此它Status = false
在页面加载事件中设置状态()。
为什么不同的浏览器在这种情况下表现不同?有没有办法克服这个?