[英]How to disable postback on an asp button and still run OnClick method?
[英]Disable PostBack button asp and run server code
我试图阻止我的asp.net按钮执行PostBack
,如下所示:
<asp:button runat="server".... OnClientClick="Confirm(); return false;" />
这是防止按钮PostBack
但它也没有运行我的OnClick
按钮事件。
我该如何解决?
我正在尝试显示确认消息,但是如果用户单击“否”按钮,则会执行PostBack
确认功能:
function Confirm() {
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm("Do you want to save data?")) {
confirm_value.value = "Yes";
} else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
}
我的Button回调(在“返回false”时未调用)附加到OnClientClick:
public void OnButtonClicked(object sender, EventArgs e)
{
string confirmValue = Request.Form["confirm_value"];
if (confirmValue == "Yes")
{
//my code
}
}
仅当您要防止回发时, OnClientClick
事件处理程序才应返回false
。 最简单的方法是:
<asp:Button runat="server" OnClientClick="if (!confirm('Do you want to save data?')) return false;" ... />
如果在确认过程中需要更多处理,可以将其放在Javascript函数中,该函数应返回布尔值:
<asp:Button runat="server" OnClientClick="if (!confirmSaving()) return false;" ... />
function confirmSaving() {
...
if (some condition) {
...
return true;
} else {
...
return false;
}
}
注意:我们可以简单地返回函数的值,而不是在OnClientClick
中放置条件。 但是,该解决方案对于某些控件失败(请参见__doPostBack仅在页面上有LinkButton,Calendar或WizardStep控件时才有效 ),而条件版本则对所有控件均有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.