ASP.NET弹出对话框

今天有空整理一下关于弹出对话框的一些处理。
之前写VB程序时,我们可以很方便地来一句 MsgBox,但是在asp.net程序中想要实现这个却不是那么地容易了。写asp.net程序也快一年了,发现程序中经常要向用户弹出一些信息提示框,例如保存数据成功时的“保存成功!”、删除前的提示“你确定要删除吗?确定  取消 ”等等。我经常用的,也是比较简单的就是“Response.Write("<script>window.alert('保存成功!');</script>")”。当然也有一些其它的方法,现在整理一下:
    (1) 对于页面完成一个操作后,弹出一个对话框提示是否“操作成功”。
Example:

  1.     Response.Write("<script>window.alert('操作成功!')</script>"); 

 (2) 点击页面上的按钮,弹出一个对话框提示是“确定”还是“取消”操作,比如删除前的提示等。这个常用的是在按钮中添加属性来实现的:
Example:  

  1.     //这个是在GridView中实现删除前的提示操作
  2.     protected void UserList_RowDataBound(object sender, GridViewRowEventArgs e)
  3.     {
  4.         ImageButton deleteBtn = (ImageButton)e.Row.FindControl("deleteBtn");
  5.         if (deleteBtn != null)
  6.         {
  7.             deleteBtn.Attributes.Add("onclick""return confirm('你确定要删除所选择的用户吗?');");
  8.         }
  9.     } 

  (3)允许 ASP.NET 服务器控件在 Page 中发出客户端脚本块,弹出时不会刷新页面:
    public virtual void RegisterStartupScript(string key,string script);

Example:

  1.     if(!this.IsStartupScriptRegistered("hello"))
  2.         this.RegisterStartupScript("hello","<script>alert('你好!')</script>"); 
  3. ///也可写成如下形式,同时将不再出现“System.Web.UI.Page.IsClientScriptBlockRegistered(string)”已过时的警告。 
  4. //Page.ClientScript.RegisterStartupScript(this.GetType(),"","<script>alert('请选择要上传的文件名!')</script>");

然而如果是对页面中的某一个Button按钮来说,当既激发校验,同时又想弹出确认对话框时,以上的方法将产生冲突。因为二者在生成javascript时都会生成onlick事件的处理方法。所以,应将按钮属性CausesValidation设为false,并在页面的page_load中应添加如下代码来实现上述效果: 

  1. deleteBtn.Attributes["onclick"]="if (typeof(Page_ClientValidate) == 'function') if(Page_ClientValidate()) return confirm('确定要删除数据吗?'); ";

这样的处理,才能保证先走验证校验,后弹出消息提示框,符合用户的操作习惯。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值