給按鈕添加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();返回到原來的頁面