我有一个 JavaScript MessageBox,当我点击 Repeater 中的事件或刷新当前页面时,它会一直显示。
函数如下:
public myFunctions()
{
}
/** Display Successs/Error Message **/
public void DisplayUserMessage(string messageType, string messageString, Label ErrorMessageLabel)
{
ErrorMessageLabel.Visible = true;
ErrorMessageLabel.Text = "<b>" + messageType.Substring(0, 1).ToUpper() + messageType.Substring(1).ToLower() + ":</b> " + messageString;
ErrorMessageLabel.CssClass = messageType.ToLower() + "_message";
}
public void HideUserMessage(Label ErrorMessageLabel)
{
ErrorMessageLabel.Visible = false;
ErrorMessageLabel.Text = "";
ErrorMessageLabel.CssClass = "";
}
这是让它淡出的 jquery:
$(document).ready(function () {
/** Success/Error Messages **/
$('.success_message').animate({ opacity: 1.0 }, 2000).fadeOut('slow');
$('.error_message').animate({ opacity: 1.0 }, 2000).fadeOut('slow');
});
这是在 MasterPage 上:
<!-- Message Box -->
<div id="msgBox" runat="server">
<asp:Label ID="ErrorMessageLabel" CssClass="" runat="server" Visible="false"></asp:Label>
</div>
这是成功发生时代码隐藏中的脚本:
Label ErrorMessageLabel = (Label)Master.FindControl("ErrorMessageLabel");
new myFunctions().DisplayUserMessage("success", "Administrator Updated!", ErrorMessageLabel);
有人知道如何阻止它在我单击另一个按钮或刷新页面后继续显示吗?
最佳答案
使用隐藏输入并在调用成功函数时设置值。所有其他时间重置该值。在您的文档就绪函数中检查隐藏元素的值,然后调用动画函数。
<input id="txtHidSuccess" type="hidden" runat="server" />
在页面加载中
txtHidSuccess.Value = "0";
在成功/错误函数中
txtHidSuccess.Value = "1";
jQuery
$(function(){
if ($("#txtHidSuccess").val() === "1") {
/** Success/Error Messages **/
$('.success_message').animate({ opacity: 1.0 }, 2000).fadeOut('slow');
$('.error_message').animate({ opacity: 1.0 }, 2000).fadeOut('slow');
}
});
关于c# - ASP C# | MessageBox 一直显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4446342/