asp.net中弹出确认窗口(confirm),实现删除确认的功能
给按钮添加Attributes属性,即Button1.Attributes["OnClick"] = "return confirm('are you sure?')";
这样在客户端生成 OnClick="return confirm('are you sure?')" 用户执行按钮的操作时,先在本地执行弹出一个confirm的确认窗口,再根据用户的选择,判断是否要执行按钮的操作。可能在刚开始的时候会认为服务器端是怎么知道用户的选择,其实在点击后,当选择“取消”时客户端自己进行确认,并没有发到服务器端进行确认。
下面就是一个例子
.aspx代码
<form id="Form1" method="post" runat="server"> <FONT face="宋体"> <asp:Button id="Button1" runat="server" Text="Button"></asp:Button> <asp:Label id="Label1" runat="server">Label</asp:Label></FONT> </form>
.cs代码
private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 Button1.Attributes["OnClick"] = "return confirm('are you sure?')"; Label1.Text="are you sure"; } private void Button1_Click(object sender, System.EventArgs e) { Label1.Text="I'm sure"; } }
其实在asp.net用到确认按钮最多的是后台的删除操作。一般在datagrid上用的比较多。
在datagrid的操作就是多按钮项的操作。所以首先要做的事情就是找到按钮项,在把confirm绑上去。
private void infolist_ItemDataBound(object sender, DataGridItemEventArgs e){
if(e.Item.ItemType!=ListItemType.Header&& e.Item.ItemType!=ListItemType.Footer)
{
LinkButton deleteButton = (LinkButton) e.Item.Cells[4].Controls[0];
deleteButton.Attributes["OnClick"]="return confirm('你确认要删除吗?')";
}
}
在项绑定函数ItemDataBound中先排除顶和底,因为那里是没有我们要找的按钮的。在找到我们要找的按钮将OnClick绑到按钮中就可以了
关闭当前页面:<a href="javascript:window.opener=null;window.close();">关闭</a>,如果是按钮则:
Response.Write("<script language=/"javascript/">window.opener=null;window.close();</script>");
这样点关闭的时候就不会弹出如当前窗口正试图关闭的对话框了.
那么怎么样当用户点浏览器的最大化最小化关闭按钮中的关闭按钮时也弹出关闭的确认对话框呢?这样:
<body onbeforeunload="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();返回到原来的页面