2012-06-02 171 views
1

我需要添加一個「你確定」彈出窗口到刪除按鈕,我不知道如何得到用戶是否點擊確定或取消。asp.net彈出確認窗口

這是我如何做到這一點:

string message = "Are you sure you want to delete this user?"; 
      System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
      sb.Append("return confirm('"); 
      sb.Append(message); 
      sb.Append("');"); 
      Type type = this.GetType(); 
      ClientScript.RegisterOnSubmitStatement(type, "alert", sb.ToString()); 

回答

5

你可以只設置的OnClientClick上的按鈕:

return confirm("Are you sure you want to delete this user?"); 

然後提交/回發不會發生如果用戶沒有點擊確定。

+0

是什麼,我需要一個完美的作品。謝謝 –

+1

@sd_dracula我的回答是第一個,更重要的是,如果你在'CausesValidation =「True」中使用這個'',那麼在提交時會有** no **客戶端驗證,如果你使用UseSubmitBehavior =「False」將會有**沒有**提交動作 - 因爲這些東西的JavaScript被添加到頁面渲染後**這段代碼之後,所以總是有**終止'return'命令,這使得它完全無法訪問(但在我的情況下只在取消)。 –

2

最簡單的方法是隻添加到您的<input type="button|submit|reset" /><button /> HTML標記(在取消沒有提交):OnClick="if(!confirm('Are you sure?')) return false;"

事件重命名爲OnClientClick對於<asp:Button /> - 它與CausesValidation="True"和/或UseSubmitBehavior="False"兼容,因爲它在之前被添加在html標記中。

1

如果您正在使用AJAX控件工具包只使用confirmextender

,如果你想知道至極按鈕,用戶點擊試試這個

在您的網頁表單添加隱藏字段

並在用戶點擊確定時使用此值來設置其值。

sb.Append("if (confirm(").Append(msg).Append("))") 
       .Append("document.getElementById('") 
       .Append(confirmResult.ClientID) 
       .Append("').value = 'ok';"); 

在後面的代碼讀取confirmResult的價值要知道如果用戶點擊確定或取消

0

我同意上面的答案,但如果你不想混你的服務器和客戶端代碼/事件,那麼我建議你去AjaxToolKit確認鍵http://bit.ly/NtmpOT