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

时间:2015-02-16 21:09:30

标签: javascript jquery asp.net vb.net alert

我的ASP.NET 4 Web窗体应用程序中有这个代码:

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>")但这从不起作用,甚至在浏览器的控制台中创建错误:&#34;未捕获的Sys.WebForms.PageRequestManagerParserErrorException:Sys.WebForms.PageRequestManagerParserErrorException:从无法解析服务器。&#34;

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

1 个答案:

答案 0 :(得分:0)

我做了类似的事情。我已经破解了一些工作代码,以简化它作为特定用途的示例:

    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中执行,还是在页面加载或其他情况下。决定需要哪种功能可能有点令人困惑,但这正是你所需要的。