0

我有一个页面属性

    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在页面加载事件中设置状态()。

为什么不同的浏览器在这种情况下表现不同?有没有办法克服这个?

4

0 回答 0