2011-01-30 4 views
4

私はUpdatePanelの内部にユーザーコントロールを持っています。イベントがトリガーされ、ユーザーコントロールが更新されると、CSSスタイルが失われているようです。これはIE8でのみ私に起こりましたが、ChromeとFFではうまくいきました。ユーザーコントロール - CSSスタイル(IE8)を更新する際になくなっている

例えばユーザ制御:

<style type="text/css"> 
    div.test 
    { 
     width: 500px; 
     height: 400px; 
     background-color: #0000BB; 
     color: #FFFFFF; 
     border: 2px solid #11CC00; 
    } 
</style> 
<div id="div123" runat="server" class="test"></div> 

public void SetText(string text) 
{ 
    div123.InnerText = text; 
} 

ページのUpdatePanel内部ユーザーコントロールを使用して、それを更新:クロームで

​​

とFFは期待(ボタンとして動作しているようですクリックすると現在の時刻がユーザコントロールに表示されますが、何も起こりません)、IE8ではユーザコントロール内のdivがスタイル(背景色、枠線)を失います。

この問題を引き起こしている可能性があり、それを防ぐために何を行うことができますどのような

+0

あなたの例から分かりにくいですが、UserControl内で定義されたCSSはありますか?もしそうなら、それを外に移動するか、UpdatePanelをUserControlの中に置くことができますか? – Jemes

+0

はい、CSSはUserControl内で定義されていますが、そこには必要です。 – Kuzco

+0

IE11互換モードのWebControlからも同様の動作が得られます。インラインスタイルのセクションは消えますが、外部CSSの「リンクrel」と外部JavaScriptの「Script」タグも消えます。私は成功していない各タグに "id"を追加しようとしました。 – Elo

答えて

3

この問題はhere言及されています。

私は提案を試してみました - のOnInitにCSSのリンクを登録する - 動作しているようです。

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e); 
    ScriptManager sm = ScriptManager.GetCurrent(Page); 
    if (!sm.IsInAsyncPostBack) 
    { 
     string css = string.Format("<link rel=\"stylesheet\" href=\"{0}\" type=\"text/css\" />", ResolveUrl(CssClassFile)); 
     ScriptManager.RegisterClientScriptBlock(this, typeof(MyBlahControl), "MyBlahId", css, false); 
    } 
} 
+1

* *がHTMLマークアップのときは "スクリプト"ですか?私の少しは泣きたい。このハックは、1日の作業が非常にうまくいくかもしれません。 –

1

私にも同様の問題がありました。
は私が<header><page>からCSS <link ..を移動し、それを解決しました。

:私はマスターページを使用して、私はすべてのページにリンクをしたくないので

は、私は、マスターページのヘッダー

<head id="Head1" runat="server"> 
    ... 
    <asp:ContentPlaceHolder ID="HeaderContentPlaceHolder" runat="server"/> 
</head> 

し、目的のページ内のリンクでのContentPlaceHolderを入れて有用であることが判明しました

<asp:Content ID="Content2" ContentPlaceHolderID="HeaderContentPlaceHolder"  Runat="Server"> 
    <link rel="stylesheet" type="text/css" href="CSS/my.css" /> 
</asp:Content> 
0

コピーは、ページにユーザーコントロールからのCSSはそれを解決します。

0

私のアプリケーションで同じ問題が発生しました。ダイナミックパネルですべてのスタイリングを終了させるように見えました。コンテンツのプレースホルダ(動的HTMLを書き込む場所)を< head>タグに移動して修正しました。私のマスターページ。

作業中!ありがとうございました:)

関連する問題