Ajax环境下弹出提示框

 

    在普通的ASP.NET环境中,我们要想在WEB窗体上弹出一个对话框,经常用到的是如下代码:


Response.Write("");

   

    然而在Ajax的环境中却不能使用上述的代码,否则会报错。因为它不会把这些数据看成语句而执行,只会当成是字符串,那么如何在Ajax环境中弹出提示框呢?

    可以使用Ajax的ScriptManager类的RegisterClientScriptBlock()方法来实现弹出对话框的功能,该类能够直接向WEB窗体页中注册对话框的脚步。


    有关该方法的API如下:

   ClientScriptManager.RegisterClientScriptBlock 方法


    下面通过一个小Demo来带大家熟悉下这个方法的用法。


    我们把要在Ajax环境下弹出的对话框都封装到一个类中,方便我们以后的调用,比如在Page下弹出的对话框、在Ajax环境下,Button按钮弹出的对话框等,都封装到一个类中,以后只需调用即可。

  /// 
    ///Ajax环境下显示对话框
    /// 
    public class AjaxCommond
    {
    
        ///
        ///在ASP.NET AJAX环境中,为Button控件弹出一个提示对话框
        ///
        ///Button控件
        ///对话框中的消息
        public void OpenDialogForButton(Button button, string message)
        {
            ScriptManager.RegisterClientScriptBlock(
                button,
                typeof(Button),
                DateTime.Now.ToString().Replace(":", " "),///使用当前时间作为标识
               "alert('" + message + "')",
               true);
        }
        ///
        ///在ASP.NET AJAX环境中,为Page对象弹出一个提示对话框
        ///
        ///Page对象
        ///对话框中的消息
        public void OpenDialogForPage(Page page, string message)
        {
            ScriptManager.RegisterClientScriptBlock(
               page,
               typeof(Page), //传递的类型
               DateTime.Now.ToString().Replace(":", " "),///使用当前时间作为标识
              "alert('" + message + "')",    //要显示的信息
              true);
        }
    }


  有了这个公共的类,下面是调用的演示代码:

  

  protected void Button1_Click(object sender, EventArgs e)
    {
        AjaxCommond ac = new AjaxCommond();//实例化公共类AjaxCommond
        //弹出ajax环境中的提示对话框
        ac.OpenDialogForButton((Button)sender, "数据保存成功!");
    }


   总结

          当然了,在Ajax环境下实现弹出对话框不止这一种方法,有更好的希望多多交流,相互学习。






你可能感兴趣的:(ASP.NET)