服务器端的MsgBox

时间:2013-02-27 12:30:18

标签: ajax vb.net postback ajaxcontroltoolkit

我正在尝试在我的网络应用上显示弹出消息。当我在我的本地电脑上正常运行我的应用程序时,会出现弹出消息框。但是,当我发布应用程序时,他们不会。

这是如何运作的: 按下一个按钮,它将从一个目录中获取一个文件,然后它将检查另一个目录以查看该文件是否存在...如果该文件存在则需要弹出窗口以通知"文件已经存在。你想继续吗?"如果用户单击是,则继续使用代码,如果他们单击否,则结束该过程。

有人知道怎么做吗?

到目前为止我的代码:

If System.IO.File.Exists(acceptedExistsuNKNOWN) And System.IO.File.Exists(rejectedExistsUNKNOWN) Then
          'IF BOTH EXIST
            If MsgBox(acceptedExistsuNKNOWN & " & " & rejectedExistsUNKNOWN & "files already exists, do you want to rerun the process?", MsgBoxStyle.YesNo, "Files Exists") = MsgBoxResult.Yes Then
(continur
else
System.Diagnostics.Process.GetCurrentProcess.Kill()...
非常感谢

2 个答案:

答案 0 :(得分:0)

你的想法的问题是有人需要登录服务器与模态弹出框进行交互;也就是说,如果这是可能的,因为它需要服务器 要成为弹出窗口的收件人,所以不像其他用户可以向他发送弹出窗口

您在服务器端执行的操作在服务器端执行。

我认为你真的希望在客户端使用 show ,但是希望逻辑能够在服务器端实现。它没有这种方式。相反,您可能会做的是输出指示应显示客户端弹出窗口的响应。例如,您可以在页面上设置隐藏字段并设置值,然后使用JavaScript显示警告,如果该值符合您的条件。

答案 1 :(得分:0)

想想你在问什么。如果在服务器端弹出一个对话框,则用户将无法看到它(它们位于客户端)。此外,代码将处于停顿状态,直到有人驳回用户无法看到的对话框。只有能够访问服务器的个人才能看到这一点。你打算让别人全天候看服务器吗?相反,您可能想要提醒用户。这可以通过从服务器代码返回客户端代码的响应来显示对话框。最简单的方法是抛出错误并将用户重定向到新页面以显示错误。如果你想要更流畅的东西,你可以使用更新的面板和AjaxControlToolkit的模态弹出扩展器。另一种方法是使用ClientScript,如下所示:

try
{
    //check for files here
}
catch (Exception ex)
{
    string script = "<script>alert('" + ex.Message + "');</script>";
    if (!Page.IsStartupScriptRegistered("myErrorScript"))
    {
         Page.ClientScript.RegisterStartupScript("myErrorScript", script);
    }
}