繁体   English   中英

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

[英]asp.net button click client and server side code

我有一个名为“ Delete”的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”语句吗?

试试看,在您的JavaScript上执行此操作

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

它是正确的,它应该回发您的代码,否则将取消您的点击。

应该是:

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

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

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

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

OnClientClick="return ConfirmDelete()"

这样可以使您的标记清晰,可读,并且如果用户选择“否”,还可以防止发生回发。

试试这个

<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(服务器端)事件,否则将不会触发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM