弹出无刷新环境中的对话框

在普通的asp.net环境中,要在页面弹出一个对话框可以用如下代码实现:

      response.write("<script>alert('这是一个对话框!')</script>");

      然而在ajax环境中如果这样用就要出错了!

      这里提供一个标准的使用方法:

private void OpenDialogForButton(Button button, string message)

        {

            ScriptManager.RegisterClientScriptBlock(

                button,

                typeof(Button),

                DateTime.Now.ToString().Replace(":", " "),

                "alert('" + message + "')",

                true);

        }

ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('发布成功!')", true);
其实这样就可以咯!

在ASP.NET页面上添加AJAX控件后,不能调出窗口的解决办法:
ASP.NET2.0中AJAX使用新的ScriptManager 类来管理,而不兼容原来的 ClientScriptManager 类 ,所以用
<script>alert('弹出提示一下!')</script>和
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "name", "<script>alert('弹出提示一下!');</script>", true);
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "name", "<script>alert('弹出提示一下!');</script>", true);
这些方法都是无效的.

可以用以下方法写代码实现

ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "", "alert('弹出提示一下!')", true);

 

 

完整事例:

 

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

/// <summary>
/// 在ASP.NET AJAX环境中,为Button控件弹出一个提示对话框
/// </summary>
/// <param name="button">Button控件</param>
/// <param name="message">对话框中的消息</param>
private void OpenDialogForButton(Button button,string message)
{
   ScriptManager.RegisterClientScriptBlock(
    button,
    typeof(Button),
    DateTime.Now.ToString().Replace(":"," "), ///使用当前时间作为标识
    "alert('" + message + "')",
    true);
}

/// <summary>
/// 在ASP.NET AJAX环境中,为Page对象弹出一个提示对话框
/// </summary>
/// <param name="page">Page对象</param>
/// <param name="message">对话框中的消息</param>
private void OpenDialogForPage(Page page,string message)
{
   ScriptManager.RegisterClientScriptBlock(
    page,
    typeof(Page),
    DateTime.Now.ToString().Replace(":"," "), ///使用当前时间作为标识
    "alert('" + message + "')",
    true);
}

protected void Page_Load(object sender,EventArgs e)
{
   if(!Page.IsPostBack)
   {   ///只有页面第一次启动时,才弹出该对话框
    OpenDialogForPage(Page,"这是Page对象弹出的提示对话框");
   }
}

protected void btnCommit_Click(object sender,EventArgs e)
{   ///弹出按钮的对话框
   OpenDialogForButton((Button)sender,"这是Button按钮弹出的提示对话框");
}

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>弹出AJAX环境中对话框</title>
</head>
<body>
    <form id="form1" runat="server">
   <asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager>  
   <asp:UpdatePanel ID="up" runat="server">
    <ContentTemplate>
     <asp:Button ID="btnCommit" runat="server" Text="单击我,弹出对话框" OnClick="btnCommit_Click" />    
    </ContentTemplate>
   </asp:UpdatePanel>
    </form>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值