2010-12-15 5 views
3

Repeaterでイベントをクリックするか、現在のページを更新したときに表示されるJavaScript MessageBoxがあります。ここASP C#| MessageBoxが表示を維持する

関数である:ここ

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'); 

})。

ここでは、マスターページ上にある:

Label ErrorMessageLabel = (Label)Master.FindControl("ErrorMessageLabel"); 
new myFunctions().DisplayUserMessage("success", "Administrator Updated!", ErrorMessageLabel); 

私は絶えず現れてからそれを停止することができますどのように誰もが知っている:成功が発生したときにここで

<!-- Message Box --> 
<div id="msgBox" runat="server"> 
     <asp:Label ID="ErrorMessageLabel" CssClass="" runat="server" Visible="false"></asp:Label> 
</div> 

は、コードビハインドでスクリプトです別のボタンをクリックするか、ページを更新した後に

答えて

0
if(IsPostBack) 
     new myFunctions().HideUserMessage(ErrorMessageLabel); 

これは機能しました。ありがとう@ハリー

1

隠し入力を使用し、成功関数が呼び出されたときに値を設定します。他のすべての時間は値をリセットします。ドキュメントの準備機能で隠し要素の値を確認し、アニメーション機能を呼び出します。

<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');  
    } 
}); 
+1

plsはPage_Load関数でコードを使用します。If(!postback){ErrorMessageLabel.Text = "";}と試してみてください。 – kbvishnu

+0

@ハリー。私は答えを作りました! – balexander

0

あなたがDisplayUserMessageを(呼び出しているところ私が参照)が、 HideUserMessage()ではありません。私の推測では、ErrorMessageLabelプロパティを設定すると、それらはViewステートに格納され、ポストバックを超えて保持されます。

ASP.NET Labelコントロールを使用するのではなく、通常のdivでテキストを折り返してCSSを使用して非表示にすることもできます。あなたのアプリで成功イベントが発生したら、ClientScriptManager.RegisterStartupScript()を使って、divを表示するスクリプトをスクリプトに書くことができます。それで、あなたのアニメーション機能は、表示されている場合、divをフェードアウトすることができます。

関連する問題