在 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 MVC。最佳实践