2つのユーザーコントロールを保持するaspxページがあります
UC1:編集ページ-これには、編集またはデータ入力用のフィールドがあります。
UC2:通知ページ-これにはjquery関数を備えたシンプルなメッセージボックスがあります
私のaspxではこの関数があります:
public void ShowMessage(string status, string message)
{
Notification1.Message = message; //this is my user control UC2
Notification1.Status = status;
Notification1.DataBind();
}
これで、aspxページにメッセージを表示する必要がある場合、これは正常に機能しますが、ユーザーコントロール1に(無効なフィールドまたは間違った量)のようなメッセージを表示させたい場合は、何も実行されません。今では呼び出されますが、jqueryはそれに反応しません。
UC2通知ユーザーコントロールでは、これは私が持っているものです:
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.js"></script>
<script type="text/javascript">
function showMsg(classname) {
$("#MsgBox").attr('class', classname);
$("#MsgBox").show().delay(5000).fadeOut();
}
</script>
<div id="MsgBox" class="info"><asp:Label ID="lblMessage" runat="server" /></div>
コードビハインド
public string Status{ get; set; }
public string Message { get; set; }
public override void DataBind()
{
if (Message != string.Empty)
{
lblMessage.Text = Message;
Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "showMsg('" + Status + "');", true);
}
}
これは、ユーザーコントロールからaspxページに関数を呼び出す方法です。
((myaspxpage)this.Page).ShowMessage("error", "This is my error message.");
どんな助けでも大歓迎です!さらに詳しい情報が必要な場合はお知らせください。よろしくお願いします。
**編集:編集ページ内にjqueryとメッセージボックスを配置して、そのように機能するかどうかを確認しましたが、機能しません。jqueryがユーザーコントロール内でうまく機能していないようです。