【问题标题】:Best way to display & fade out a status message in asp.net?在 asp.net 中显示和淡出状态消息的最佳方法?
【发布时间】:2011-04-05 15:56:11
【问题描述】:

我正在使用带有 AJAX 控制工具包的 VSS 2005 和网络表单。我正在使用更新面板来保存表单的不同部分。问题是我使用标签或文字值的状态设置更新用户。

在刷新页面之前,此值在表单上可见。有什么方法可以显示一条消息并在几秒钟后将其淡出?对我来说是救命稻草=)

我使用的是 VSS 2005,但我认为简单的淡入淡出不需要太多的 JQuery 智能感知?

【问题讨论】:

    标签: javascript asp.net jquery jquery-ui asp.net-ajax


    【解决方案1】:

    结合使用jQuery timers pluginjQuery fadeOut method,您可能会实现您想要的:

    $(function() {
        $(this).oneTime(1000, function() {
            $('#book').fadeOut('slow', function() {
            // Animation complete.
            });
        });
    });
    

    这将在 DOM 准备好后调用一个函数(第一行)。该函数将在一秒钟后调用另一个函数(第二行)。这个其他函数将淡出 id 为“book”的项目。

    我不知道,更新面板可能没有“完成”DOM。你可以把它变成一个普通的函数(用function removeMessage() {替换第一行,用}替换最后一行。然后在你的updatePanel中,添加对这个函数的调用。不过我自己还没有测试过。

    【讨论】:

    • 嗨, .oneTime 的目的是什么?我们不能只在 fadeOut 上指定时间(以毫秒为单位)吗?
    • 还是想不通。
    • oneTime 是 jQuery 计时器插件的一部分,而 fadeOut 是 jQuery UI 的一部分。 oneTime 上的时间(以毫秒为单位)意味着在 1000 毫秒后将调用 fadeOut。如果将整数传递给fadeOut(如fadeOut(1000...),它将使动画持续1000毫秒。
    • 好的,我设法让它在没有计时器插件的情况下工作,但是当标签/div 在更新面板之外时我仍然无法让它工作。有什么线索吗?
    • 有点想不通,但我相信你必须注册你的 ScriptManager。 this.RegisterScriptManager(myScriptManager, myUpdatePanel) 之类的东西,其中 myScriptManager 是您放在页面上的 ScriptManager 控件(或通过 ScriptManager.GetCurrent(this.Page) 获取),而 myUpdatePanel 是您的更新面板。如果这仍然不起作用,请告诉我,我将在测试项目中尝试。
    【解决方案2】:

    我开发了一个简单的轻量级控件,您只需拖放即可显示“twitter 风格”的 Flash 消息。

    http://dotnetkicks.com/aspnet/ASP_NET_SlidingMessage_Control

    如果觉得有用请投票:)

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      相关资源
      最近更新 更多