0

(updatepanelに)ラジオボタンがあり、checkchangedイベントでユーザーにメッセージを表示しています。しかし、divはマスターページにあり、ページはレンダリングされていません。そのため、メッセージを表示できません。これを解決することは可能ですか?ところで、私はメッセージを表示するためにクラスを使用しています。これが私のコードです。

public static void setError(System.Web.UI.Page p, string title, string error, string type)
    {
        Literal literal = p.Master.FindControl("ltMessage") as Literal;

        if (type == "error")
        {
            literal.Text = "<div id=\"alertError\" style=\"display:none; color:#fff; text-align:center; padding: 8px 10px 9px; width:auto; position:relative; background:#cc0000;\"><h3>" + title + "</h3><p>" + error + "</p></div>";
            //literal.Text = "<div id=\"alert\" class=\"error message\"><h3>" + title + "</h3><p>" + error + "</p></div>";

            StringBuilder sb = new StringBuilder();
            sb.Append("$(function() { ");
            sb.Append(" $('#alertError').toggle({");
            sb.Append("    width: 400");
            sb.Append(" });");
            sb.Append("});");

            if (HttpContext.Current.CurrentHandler is Page)
            {
                Page pa = (Page)HttpContext.Current.CurrentHandler;

                if (ScriptManager.GetCurrent(pa) != null)
                {
                    ScriptManager.RegisterStartupScript(pa, typeof(Page), "alert", sb.ToString(), true);
                }
                else
                {
                    pa.ClientScript.RegisterClientScriptBlock(typeof(Page), "alert", sb.ToString(), true);
                }
            }
        }
}
4

2 に答える 2

1

そのsetErrorをどのように呼び出しているかわからない。ただし、これはページがロードされた後にのみ呼び出される$(function() {...})同義語 です。$(document).ready(function(){...})UpadtePanelはAJAX呼び出しを行っており、$(document).readyイベントを実行しません。以下のコードを試してください:

StringBuilder sb = new StringBuilder();
sb.Append(" $('#alertError').toggle({");
sb.Append("    width: 400");
sb.Append(" });");

他のすべてを正しく実行している場合、これは機能するはずです。

于 2012-09-18T07:05:44.987 に答える
0

それを私が直した。マスターページにあるupdatepanelにdivを配置しました。そして今、それは完璧に機能します。

于 2012-09-18T15:17:50.400 に答える