asp.net 按钮单击客户端和服务器端代码
本文关键字:服务器端 代码 客户端 单击 net 按钮 asp | 更新日期: 2023-09-27 18:31:40
我有一个名为"删除"的asp:button
,我想做的是有一个带有"是"和"否"选项的JavaScript确认弹出窗口。如果为"是",则从 SQL 数据库中删除记录,如果为"否",则不应发生任何操作。
<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 事件处理程序放在脚本标记中,并从按钮定义中的 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(服务器端)事件将触发,否则不会。