处理代码隐藏后显示客户端警报。 ASP.NET

Show a Client Alert After the codebehind has been processed. ASP.NET

我的 ASP.NET 4 Web Forms 应用中有这段代码:

Protected Sub BTNSave_Click(sender As Object, e As EventArgs) Handles BTNSave.Click

   If saveOnDB() Then
      showOkAlert()
   Else
      showErrorAlert()
   End If
End Sub

当在后面的代码中完成的某些事情没有问题或发生错误时,我需要显示一个客户端警报。有什么想法吗?

我绑定了 Response.Write("<script>alert('Successfully added');</script>") 但这从来没有用过,甚至在浏览器的控制台中产生了一个错误:"Uncaught Sys.WebForms.PageRequestManagerParserErrorException: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed."

我也不使用 OnClientClick,因为它会在代码隐藏之前触发 javascript。

我也在做类似的事情。我破解了一些工作代码以将其简化为您特定用途的示例:

    private void RegisterJavascriptForUpdatePanelExample(UpdatePanel myUpdatePanel, string myMessage)
    {
        const string JAVASCRIPT_TEMPLATE = "javascript: jQuery(function($) {{ alert({0}); }});";
        const string SCRIPT_KEY_TEMPLATE = "KeyForRegisterJavascriptForModalPopup_{0}";
        string scriptkey, scriptstr;

        scriptkey = string.Format(SCRIPT_KEY_TEMPLATE, myUpdatePanel.ClientID);
        scriptstr = string.Format(JAVASCRIPT_TEMPLATE, myMessage);
        ToolkitScriptManager.RegisterClientScriptBlock(myUpdatePanel, myUpdatePanel.GetType(), scriptkey, scriptstr, true);
    }

在此示例中,调用了一个简单的 JavaScript alert() 来显示您的消息,如下所示:

RegisterJavascriptForUpdatePanelExample("A-OK!");

特别感兴趣的是 ToolkitScriptManager.RegisterClientScriptBlock 函数。这有多种变体,具体取决于 JavaScript 代码是否应嵌入并在 UpdatePanel 中执行,或者页面加载时或其他情况。决定需要哪个功能可能有点混乱,但这正是您所需要的。