在ASP.NET中显示并淡出状态消息的最佳方法是什么?

3
我正在使用VSS 2005和AJAX Control Toolkit中的webforms。我正在使用Update面板来保存表单的不同部分。问题是,当我更新用户状态时,会设置标签或文本值。

这个值在页面刷新前可见。有没有办法显示一条消息并在几秒钟后淡出?这对我来说将是救命稻草=)

我正在使用VSS 2005,但我认为一个简单的淡入淡出不需要使用JQuery的智能提示?

2个回答

2

结合jQuery计时器插件jQuery淡出方法,您可能会实现您想要的效果:

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

这将在DOM准备就绪后调用一个函数(第一行)。这个函数将在一秒钟后调用另一个函数(第二行)。这个其他函数将淡出带有'id'为“book”的项目。
DOM可能没有完成对updatepanels的更新,我不知道。你可以把这个变成一个普通的函数(用function removeMessage() {替换第一行,用}代替最后一行)。然后在你的updatePanel中,添加对这个函数的调用。虽然我自己没有测试过。

嗨,.oneTime 的目的是什么?我们不能在 fadeOut 中直接指定毫秒数吗? - Zo Has
仍然无法弄清楚这个问题。 - Zo Has
oneTime是jQuery timers插件的一部分,而fadeOut是jQuery UI的一部分。oneTime中的毫秒数表示在1000毫秒后将调用fadeOut。如果将整数传递给fadeOut(例如'fadeOut(1000 ...)'),则动画将持续1000毫秒。 - Peter
好的,我成功地使它工作了,没有使用计时器插件,但当标签/ div 在更新面板外部时,仍然无法使其工作。有线索吗? - Zo Has
从我记忆中有点模糊,但我认为您需要注册您的ScriptManager。类似于 this.RegisterScriptManager(myScriptManager, myUpdatePanel),其中myScriptManager是您放在页面上的ScriptManager控件(或通过ScriptManager.GetCurrent(this.Page)获取它),而myUpdatePanel则是您的updatepanel。如果这仍然无法解决问题,请让我知道,我会在测试项目中尝试一下。 - Peter

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接