关闭页面代码和弹出窗口,出现确定,取消按钮+执行

关闭当前页面:<a href="javascript:window.opener=null;window.close();">关闭</a>,如果是按钮则:

Response.Write("<script language=/"javascript/">window.opener=null;window.close();</script>");

这样点关闭的时候就不会弹出如当前窗口正试图关闭的对话框了.

那么怎么样当用户点浏览器的最大化最小化关闭按钮中的关闭按钮时也弹出关闭的确认对话框呢?这样:

<body οnbefοreunlοad="return '真的要关闭此窗口吗?'">这样的话在点关闭时候就会执行onbeforeunload函数,弹出真的要关闭此窗口吗的对话框,点取消返回假,不关闭,点确定返回真关闭窗口

那么怎么样才能够点击某个按钮的时候弹出确定取消对话框呢??如果点取消就不执行下面的代码,点确定就继续执行下面的代码?

在按钮的单击里写:

Response.Write("<script language=/javascript/">" + "if(confirm(/"确定吗?/"))"+"{window.location.href='default.aspx';}"+"else{history.back();}"+"</script>");

意思是:首先用confirm函数弹出个有确定取消的对话框,如果你点了确定就返回真,就执行window.location.href='default.aspx'代码,如果点了取消就返回假,就执行history.back();返回到原来的页面

当然我们也可以这样写:

private void btnChong_Click(object sender, System.Web.UI.ImageClickEventArgs e)
  {
   Response.Write("<script language=/"javascript/">" + "if(!confirm(/"您确定要充值吗?/"))" + "{history.back();}" + "</script>");
   //首先弹出一个含有确定取消按钮的对话框,如果点取消,则返回原页面,将不执行下面所有代码
   string connString = ConfigurationSettings.AppSettings["connStr"].ToString() + Server.MapPath(Request.ApplicationPath) +"//hualong.mdb";
   OleDbConnection conn = new OleDbConnection(connString);
   string selString = "select Count(*) from myuser where name = @name";
   OleDbCommand comm = new OleDbCommand(selString,conn);
   conn.Open();
   comm.Parameters.Add(new OleDbParameter("@name",OleDbType.VarChar,50));
   comm.Parameters["@name"].Value = txtZhang.Text.ToString().Trim();
   int i = (int)comm.ExecuteScalar();
   conn.Close();
   if(i==0)//如果帐号不存在
   {
    Response.Write("<script>alert('帐号不正确!')</script>");
    return;//return下面的所有代码将不会被执行
   }
   else//如果帐号存在再执行下面的代码
   {
       string selString1 = "select Count(*) from haoma where kahao = @kahao and mima = @mima and youxiao = '有效'";
    OleDbCommand comm1 = new OleDbCommand(selString1,conn);
    conn.Open();
    comm1.Parameters.Add(new OleDbParameter("@kahao",OleDbType.VarChar,50));
    comm1.Parameters.Add(new OleDbParameter("@mima",OleDbType.VarChar,50));
    comm1.Parameters["@kahao"].Value = txtKa.Text.ToString().Trim();
    comm1.Parameters["@mima"].Value = En.Encryption(txtPass.Text.ToString().Trim(),"16899168");//把密码加密
    int ii = (int)comm1.ExecuteScalar();
    conn.Close();
    if(ii==0)//如果卡记录不存在或者已经被充值
    {
     Response.Write("<script language=/"javascript/">alert('卡号或者密码错误!');</script>");
     return;//不执行下面的代码
    }
    else
    {
        string selStr = "select over_date from myuser where name = @name";
     //把myuser表里面的用户过期字段取出来
     OleDbCommand comm11 = new OleDbCommand(selStr,conn);
     conn.Open();
     comm11.Parameters.Add(new OleDbParameter("@name",OleDbType.VarChar,50));
     comm11.Parameters["@name"].Value = txtZhang.Text.ToString().Trim();
     OleDbDataReader dr = comm11.ExecuteReader();
     dr.Read();
     DateTime overDate = new DateTime();
     overDate = dr.GetDateTime(0);
     dr.Close();
     conn.Close();
     string upString = "update haoma set youxiao = '无效',zhanghao = @zhanghao,ch_date = @ch_date where kahao = @kahao";
     //更新数据库记录使卡号处于失效状态,同时写入用户充值记录
     string upString1 = "update myuser set over_date = @over_date where name = @name";
     //更新数据记录用户帐户过期日加一个月
     OleDbCommand comm22 = new OleDbCommand(upString,conn);
     conn.Open();
     //comm22.Parameters.Add(new OleDbParameter("@youxiao",OleDbType.VarChar,50));
     comm22.Parameters.Add(new OleDbParameter("@zhanghao",OleDbType.VarChar,50));
     comm22.Parameters.Add(new OleDbParameter("@ch_date",OleDbType.Date));
     comm22.Parameters.Add(new OleDbParameter("@kahao",OleDbType.VarChar,50));
     comm22.Parameters["@zhanghao"].Value = txtZhang.Text.ToString().Trim();
     comm22.Parameters["@ch_date"].Value = DateTime.Now;
     comm22.Parameters["@kahao"].Value = txtKa.Text.ToString().Trim();
     comm22.ExecuteNonQuery();
     conn.Close();
     OleDbCommand comm33 = new OleDbCommand(upString1,conn);
     comm33.Parameters.Add(new OleDbParameter("@over_date",OleDbType.Date));
     comm33.Parameters.Add(new OleDbParameter("@name",OleDbType.VarChar,50));
     comm33.Parameters["@name"].Value = txtZhang.Text.ToString().Trim();
     if(overDate > DateTime.Now)
     {
      comm33.Parameters["@over_date"].Value = overDate.AddMonths(1);
     }
     else
     {
         comm33.Parameters["@over_date"].Value = DateTime.Now.AddMonths(1);
     }
     conn.Open();
     comm33.ExecuteNonQuery();
     conn.Close();
     Response.Write("<script language=/"javascript/">alert('充值成功,祝学习创业愉快!');</script>");
    }
   }
  }

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
水晶蓝色的弹窗,兼容主流浏览器。提取自ZCMS的弹出框:代替window.open、window.alert、window.confirm;提供良好的用户体验;   水晶质感,设计细腻,外观漂亮;   兼容ie6/7/8、firefox2/3、Opera;弹出框在ie6下不会被select控件穿透;   无外部css文件,引用Dialog.js即可使用;   对iframe下的应用作了充分考虑,适合复杂的系统应用;   Dialog显示的内容(三种):1、指向一个URL的iframe窗口;2、页面内隐藏的元素中的html内容;3、直接输出一段html内容;   按ESC键可关闭弹出框;      主调函数参数说明:   Dialog.open({ID,Title,URL,InnerHtml,InvokeElementId,Width,Height,Top,Left,Drag,OKEvent,ShowButtonRow,   MessageTitle,Message,AutoClose,OnLoad})   ID:窗口id号,可省略。每个窗口的id必须是唯一的不能重复。   Title:窗口标题。如不写此项默认值为""。   URL: 窗口内容页地址,或使用相对路径或绝对路径,注意如果使用http://www.host.com形式的绝对地址,则http://不能省略。   InnerHtml: 窗口内容html代码,用于直接输出html内容,注意不要让生成的内容因为不适当的宽度或定位方式而破坏了Dialog的外观。   InvokeElementId: 本页面内隐藏的元素的id,用于显示页面内隐藏的元素中的html内容,注意不要让内容因为不适当的宽度或定位方式而破坏了Dialog的外观。   Width:窗口宽度(dialog内容区宽度),值为数值型,默认值为窗口可见宽的40%。   Height:窗口高度(dialog内容区高度),值为数值型,默认值为窗口可见宽的20%。   Left:窗口浏览器左边距离,值为数值型或字符串型(当使用百分比时为字符串型),如Left:"0%",Top:"0%"为左上,Left:"50%",Top:"50%"为居中,Left:"100%",Top:"100%"为右下。   Top:窗口浏览器顶端距离,值为数值型或字符串型(百分比)。   Drag:是否允许拖动窗口,值为布尔型(true|false),默认值为true,注意需要页面引用了Drag.js。   OKEvent:点击确定按钮执行的函数。   CancelEvent:点击取消按钮或点击关闭按钮执行的函数,默认为关闭本Dialog。   ShowButtonRow:是否不显示按钮栏,值为布尔型(true|false),默认值为false,当定义了OKEvent或调用了addButton时自动设为true。   MessageTitle,Message:自定义的窗口说明栏中的小标题和说明。   ShowMessageRow:是否显示窗口说明栏,值为布尔型(true|false),默认值为false,当定义了MessageTitle或Message时自动设为true。   AutoClose:是否自行关闭,值为数值型,默认值为false。   OnLoad:窗口内容载入完成后执行的程序,值为函数型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pwqzc

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值