生成像StackOverflow这样的“toast”消息

时间:2010-11-21 11:40:07

标签: .net asp.net jquery ajax messagebox

每次构建我的Web应用程序时,我都会想到的一个问题是消息应该如何显示给最终用户

我尝试过像Windows应用程序中的消息框,但它们看起来很糟糕,并且在服务器上发布时会出现问题。我在页面底部的顶部尝试了一个包含很酷标签的更新面板..但我觉得它根本不够好。有时在使用AJAX时我在特定情况下遇到问题,但对用户来说仍然不太好......

我想问一下暂时出现然后消失的StackOverFlow消息,例如在向上或向下投票时以橙色显示的消息。

我想构建这样的消息或重用可以提供这些消息的DLL。这可行吗?

请注意::: 根据服务器端的特定条件为用户显示消息..

提前致谢。

5 个答案:

答案 0 :(得分:17)

具体来说,jGrowl jQuery插件可以满足您的要求。

只需在html中包含jQuery和jGrowl脚本,然后使用$ .jGrowl()函数开始生成消息。

示例代码:

<html>
<head>
<script src="path/to/jquery.js"></script>
<script src="path/to/jgrowl.js"></script>
<script>
$(function() {
  $.jGrowl("My sticky message, loaded after the rest of the page", {sticky: true});
  $("#mybutton").live("click", function(_) {
    $.jGrowl("you clicked the button!");});
});
</script>
</head>
<body>
<button id="mybutton">click me</button>
</body>
</html>

答案 1 :(得分:12)

要创建效果,您可以使用这些工具

Jquery

jQuery 用户界面库。它提供了用于创建富Internet应用程序的交互,小部件,效果和主题

您可以查看一些Jquery效果here

MooTools

基于Mootools JavaScript框架构建的Web应用程序用户界面库

答案 2 :(得分:9)

嗯,通过.cs使用jGrowl(扩展Shane的答案)的一种方法如下所示。

webform ASP.NET中的这个例子

使用1个按钮创建一个简单的aspx页面,并确保在页眉中包含必要的jquery / jgrowl脚本和css引用,我也在页面上有一个ScriptManager和更新面板。

在页面背后的代码中:

protected void Button1_Click(object sender, EventArgs e)
{
    this.ShowStatus("This is your message!<br />Some HTML formatting works!<br />");
}

protected void ShowStatus(string message)
{
    ScriptManager sm = ScriptManager.GetCurrent(Page);

    if (sm.IsInAsyncPostBack)
    {
        string script = @"
            $(document).ready(function() {
            $.jGrowl.defaults.theme = 'iphone';
            $.jGrowl('" + message + "', {theme: 'iphone',header: 'Notification',life: 8000});});";

        ScriptManager.RegisterStartupScript(Page,this.GetType(), "notification", script,true);                        
    }
}

自然使用适合您应用的任何主题,祝您好运!此外,此方法仅根据需要加载通知脚本(在这种情况下,单击按钮后),但您可以将“ShowStatus”函数绑定到后面的代码中的其他事件/测试。

答案 3 :(得分:2)

另一个非常好的JavaScript通知插件是Pines Notify

它还具有通知历史记录小部件。

答案 4 :(得分:1)

使用mootools的Notimoo插件。
仅在昨天使用,并且喜欢配置选项。

http://code.google.com/p/notimoo/