asp.net按钮单击客户端和服务器端代码

时间:2013-09-17 10:58:06

标签: c# javascript asp.net button

我有一个名为“删除”的asp:button,我要做的是有一个JavaScript确认弹出窗口,其中包含选项“是”和“否”。如果“是”则从SQL DB中删除记录,否则如果“否”则不会发生任何事情。

<asp:Button runat="server" ID="btnDelete" Text="Delete" 
  OnClientClick="if(confirm('Delete?'))alert('You chose yes!');else alert('You chose no!')" 
  OnClick="btnDelete_Click" />

btnDelete_Click包含SQL删除逻辑。

我遇到的问题是OnClick方法总是被执行。无论您从JavaScript弹出窗口中选择“是”还是“否”,记录都会被删除。它似乎总是会引发回发。

我可以以某种方式将“是”或“否”结果输入到我的代码中,这样我实际上可以为删除逻辑做一个简单的“if”语句吗?

4 个答案:

答案 0 :(得分:5)

试试这个,在你的javascript上执行此操作

var result = Confirm("Are you sure . . . . ");
if(result)
   return true;
else
   return false;

它的作用是,如果它是真的,它应该回发你的代码,否则它会取消你的点击。

答案 1 :(得分:0)

应该是:

<asp:Button runat="server" ID="btnDeleteSite" Text="Delete" OnClientClick="return confirm('Format Delete?');" OnClick="btnDeleteSite_Click" />

答案 2 :(得分:0)

理想情况下,您应该将JS事件处理程序放在脚本标记中,并从按钮定义中的OnClientClick事件中调用它们。像这样:

<script type="text/javascript">
    function ConfirmDelete() {
            return confirm("Delete?");
        }
</script>

然后在按钮的OnClientClick事件中,执行以下操作:

OnClientClick="return ConfirmDelete()"

这样可以保持标记的清晰和可读性,并且如果用户选择“否”,也会阻止回发发生。

答案 3 :(得分:0)

试试这个

<asp:Button runat="server" ID="btnDelete" Text="Delete" OnClientClick="if(confirm('Delete?')){return true;}else {return false;} OnClick="btnDelete_Click" />

当您使用带有JS确认对话框的OnClientClick事件时,您需要返回true或false。如果它将返回True,则OnClick(服务器端)事件将触发,否则它将不会。