none
AJAX回传过程中禁止用户重复提交 RRS feed

  • 问题

  • 页面使用了Ajax,非jQuery,用的是微软的ScriptManager和UpdateProgress。如何在数据回传过程中禁止用户重复提交?即用户点了提交按钮后,按钮不能用,等到数据回传后,按钮状态自动变为可用!

    大概思路是:点按钮后用javascript脚本把按钮先禁用,在回传完成的事件里再调用javascript脚本把按钮启用。

    但不知具体代码如何写。请高手给出示例代码。非常感谢!!

    2012年3月23日 13:39

答案

  • 前台:

       <form id="form1" runat="server">
        <asp:ScriptManager runat="server" />
        <asp:UpdatePanel runat="server" ID="UpdatePanel1">
            <ContentTemplate>

             <asp:Button Text="提交" ID="btn_Go" runat="server" onclick="btn_Go_Click"   />
            </ContentTemplate>
          
        </asp:UpdatePanel>
     
      
        </form>

    後台:

        protected void Page_Load(object sender, EventArgs e)
        {


          
                ScriptManager.RegisterOnSubmitStatement(Page, typeof(Page), "Go_disabled", "document.getElementById('btn_Go').disabled='disabled';");
                ScriptManager.RegisterStartupScript(Page, typeof(Page), "Clear_disabled", "document.getElementById('btn_Go').disabled='';", true);
           
          

        }
        protected void btn_Go_Click(object sender, EventArgs e)
        {
           
            Thread.Sleep(3000);
            btn_Go.Text = "execute complete";
           
        }


    2012年3月24日 7:30