![](/img/trans.png)
[英]ASP.NET dropdownlist is empty in server button_click, the ddl is populated client side
[英]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.