添加 toastr javascript asp.net webform

Posted

技术标签:

【中文标题】添加 toastr javascript asp.net webform【英文标题】:Adding toastr javascript asp.net webform 【发布时间】:2013-03-10 19:23:59 【问题描述】:

我尝试在使用按钮提交表单后显示 toastr 消息(信息、错误等),并在 asp.net 网络表单中更新 gridview 控件(位于更新面板中)。谢谢

【问题讨论】:

刚刚得到它; ScriptManager.RegisterStartupScript(this, GetType(), ",toastr", "toastr.info('Customer added','Message')", true); 使用 ScriptManager 的有趣方法...整洁! 【参考方案1】:

您可以使用Page.ClientScript.RegisterStartupScript 方法来做到这一点。示例:

Page.ClientScript.RegisterStartupScript(this.GetType(),
    "toastr_message", "toastr.error('There was an error', 'Error')", true);

但我可能会创建一个方法或扩展方法来为我处理它:

public static void ShowToastr(this Page page, string message, string title, string type = "info")

    page.ClientScript.RegisterStartupScript(page.GetType(), "toastr_message",
          String.Format("toastr.0('1', '2');", type.ToLower(), message, title), addScriptTags: true);

用途:

ShowToastr(this.Page, "Hello world!", "Hello");

如果您想要更健壮的东西,可以将type 参数设为enum

【讨论】:

我认为这很简洁而且非常强大......谢谢【参考方案2】:

从网络表单调用,(注意这是一个 MasterDetail 表单,所以有一个 MasterPage。

MasterPage.ShowToastr(Page, "Message Here", "Title Here", "Info", False, "toast-bottom-full-width", False)

母版页 (VB) 中的 VB.NET ShowToastr 实现

Public Shared Sub ShowToastr(ByVal page As Page, ByVal message As String, ByVal title As String, Optional ByVal type As String = "info", Optional ByVal clearToast As Boolean = False, Optional ByVal pos As String = "toast-top-left", Optional ByVal Sticky As Boolean = False)
    Dim toastrScript As String = [String].Format("Notify('0','1','2', '3', '4', '5');", message, title, type, clearToast, pos, Sticky)
    page.ClientScript.RegisterStartupScript(page.[GetType](), "toastr_message", toastrScript, addScriptTags:=True)
End Sub

javascript 函数 ShowToastr 作为共享函数驻留在母版页中。

  <link href="./Media/css/Grey/ListBox.Grey.css" rel="stylesheet" type="text/css" />
<link href="./Media/css/WebTrack.css" rel="stylesheet" type="text/css" />

<script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>

<link href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.0.1/css/toastr.css"
    rel="stylesheet" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.0.1/js/toastr.js"
    type="text/javascript"></script>

<script language="javascript" type="text/javascript">
    function Notify(msg, title, type, clear, pos, sticky) 
        //        toastr.options.positionClass = "toast-bottom-right";
        //        toastr.options.positionClass = "toast-bottom-left";
        //        toastr.options.positionClass = "toast-top-right";
        //        toastr.options.positionClass = "toast-top-left";
        //        toastr.options.positionClass = "toast-bottom-full-width";
        //        toastr.options.positionClass = "toast-top-full-width";
        //        options = 
        //            tapToDismiss: true,
        //            toastClass: 'toast',
        //            containerId: 'toast-container',
        //            debug: false,
        //            fadeIn: 300,
        //            fadeOut: 1000,
        //            extendedTimeOut: 1000,
        //            iconClass: 'toast-info',
        //            positionClass: 'toast-top-right',
        //            timeOut: 5000, // Set timeOut to 0 to make it sticky
        //            titleClass: 'toast-title',
        //            messageClass: 'toast-message' 


        if (clear == true) 
            toastr.clear();
        
        if (sticky == true) 
            toastr.tapToDismiss = true;
            toastr.timeOut = 10000;
        

        toastr.options.onclick = function() 
            //alert('You can perform some custom action after a toast goes away');
        
        //"toast-top-left";
        toastr.options.positionClass = pos;
        if (type.toLowerCase() == 'info') 
            toastr.options.timeOut = 1000;
            toastr.tapToDismiss = true;
            toastr.info(msg, title);
        
        if (type.toLowerCase() == 'success') 
            toastr.options.timeOut = 1500;
            toastr.success(msg, title);
        
        if (type.toLowerCase() == 'warning') 
            toastr.options.timeOut = 3000;
            toastr.warning(msg, title);
        
        if (type.toLowerCase() == 'error') 
            toastr.options.timeOut = 10000;
            toastr.error(msg, title);
        
    
</script>

我希望这对某人有所帮助,因为我多年来一直在尝试将 toastr 选项集成到一个电话中。如果您想在调用 toastr 时有更多可用选项,请向函数添加更多参数。所有可以设置的选项都在注释代码(javascript)中。

【讨论】:

尽管代码有效,但当我尝试使用 foreach 语句调用函数来显示通知列表时遇到问题。

以上是关于添加 toastr javascript asp.net webform的主要内容,如果未能解决你的问题,请参考以下文章

Toastr js添加批准/拒绝按钮

如何将 toastr-rails gem 添加到 Rails 6 项目?

重复的 toastr 错误消息

PyQt 是不是有类似的 Toastr?

PyQt 是不是有类似的 Toastr?

ASP.NET MVC 4 中的 Toast 通知