在 asp.net 中显示和淡出状态消息的最佳方法?

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案1】:

结合使用jQuery timers plugin 和jQuery 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

如果觉得有用请投票:)

谢谢

【讨论】:

以上是关于在 asp.net 中显示和淡出状态消息的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET 中实现 404 的最佳方法

为每个指定字符添加换行符的最佳方法? (asp.net)

如何将消息插入取决于会话值的视图。 ASP.NET MVC。最佳实践

在 ASP.NET 应用程序中捕获所有异常的最佳方法是啥?

使用 ASP.NET MVC 实现字段验证的最佳方法是啥? [关闭]

在 Asp.Net c# 中更新 gridview