2012-06-02 49 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