繁体   English   中英

禁用PostBack按钮asp并运行服务器代码

[英]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仅在页面上有LinkBut​​ton,Calendar或WizardStep控件时才有效 ),而条件版本则对所有控件均有效。

暂无
暂无

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

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