如何在ASP.NET中制作一个简单的是/否弹出窗口,将结果返回给我的C#代码?

5

在ASP.NET中,我如何提示用户进行是/否问题,并将结果返回到我的.ascx文件中?

目前,我可以使用JavaScript打开确认对话框,但无法返回值。但我不知道这是否是正确的方法。


C#没有像Windows表单C#中那样的消息框。这就是为什么要使用JavaScript消息框的原因。 - Ruben
1
ASP.NET 并没有,更确切地说。 - Sergey Metlov
8个回答

4
您可以使用标准的JavaScript confirm()函数显示弹出窗口,并在用户点击“是”或“否”后进行Post Back。例如:
if (confirm('Question')) {
    __doPostBack('', 'Yes_clicked');
} else {
    __doPostBack('', 'No_clicked')
}  

然后在服务器上的Page_Load()方法中执行:

if (IsPostBack)
{
    var result = Request.Params["__EVENTARGUMENT"];
}

你还可以通过将__doPostBack()函数的第一个参数指定为任何更新面板的ID来异步执行它。


太好了!__doPostBack正是我正在寻找的。而且,其实__EVENTARGUMENT也很方便知道。首次测试显示它的效果非常好。 - radbyx
很高兴能够帮助。如果您的所有测试都通过,请不要忘记接受。 - Sergey Metlov

1

1
将以下内容添加到源代码的头部:
``` function confirm_Edit() { if (confirm("Are you sure want to Edit?")==true) return true; else return false; } ```
调用方式如下:

1

0

我使用这个。据我所知,它可以防止按钮事件的其余部分执行。

btnMyButton.Attributes.Add("onClick", "return confirm('Are you really sure?')");

0

你需要使用ajax,或向服务器发起一个postback请求。 你的c#代码在服务端执行,而javascript代码则在客户端执行。 如果你使用asp .net的ajax扩展,你可以使用javascript页面方法

PageMethods.YourMethod(confirm('your text'), OnSuccess, OnFailure);

0

另一个选项是显示是/否:

<script>     
        function AlertFunction() {
            if (confirm('Are you sure you want to save this thing into the database?')) {
               $('#ConfirmMessageResponse').val('Yes');
            } else {
                $('#ConfirmMessageResponse').val('No');
            }
        }
    </script>

从 .net 方面处理它:

string confirmValue = ConfirmMessageResponse.Value;
                if (confirmValue == "Yes")
                {...}

-1

string confirmValue = ConfirmMessageResponse.Value; 在使用 .net 端时,此行代码会出错


目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接