如何在asp.net中从codebehind运行确认对话框

时间:2015-06-05 22:23:45

标签: javascript c# asp.net

我想从后面的代码运行确认对话框。我搜索了谷歌,我发现的只是消息是预定义的,并且确认对话框链接到按钮onclick事件。我无法将我的确认对话框链接到onclick事件,因为我需要检查代码隐藏中的场景并询问用户是否要继续。

我有1个按钮和大约10个不同的场景(每个场景都有不同的问题),我想询问用户,是否要继续。如果他按OK,那么我想继续我的代码,否则我想取消。

我创建了一些javascript函数

<script type="text/javascript">
    function Confirm() {
        var hidden = document.getElementById("<%=HiddenField1.ClientID %>");
        if (confirm("Test?")) {
            hidden.value = "ok";
            window.location.replace("PrijavaIzpit.aspx");
        } else {
            hidden.value = "cancel";
        }
    }
</script>

我从后面的代码中调用

Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "Confirm();", true);

但问题是,如果我将return放在我调用javascript函数的行之后,此代码才会运行。

这是正确的想法吗?我该怎么办?用javascript可以吗?

2 个答案:

答案 0 :(得分:1)

Vitor是正确的,使用AJAX来调用ASP.NET代码隐藏页面。由于您上面没有任何实际的AJAX代码,我只是指向Dave Ward's fantastic page,在那里我学习了如何使用jQuery进行AJAX。我鼓励你阅读他的ongoing articles关于如何在ASP.NET中使用jQuery,特别是当他谈到使用数据传输对象时(它基本上是一个JSON.stringified JavaScript对象,它在代码隐藏{{1}上反序列化完成工作,回调提供您正在寻找的数据)。

你没有提到你是否使用jQuery,但如果你是,你可以直接调整他的方法,如果你使用纯JS,你将不得不弄清楚如何进行AJAX调用那样。这并不难,只是更复杂。

您可能还会发现this SO answer有帮助。

或者对问题采取不同的看法this SO answer

答案 1 :(得分:0)

您无法在Web应用程序方案中运行代码后面的确认对话框。在客户端,使用javascript对服务器端进行ajax调用以检查场景,然后,在ajax回调上继续与用户交互..