사용자 컨트롤이 UpdatePanel 안에 있습니다. 이벤트가 트리거되고 사용자 정의 컨트롤을 업데이트하면 CSS 스타일이 손실됩니다. 크롬과 FF에서는 IE8에서만 나에게 이런 일이 일어났습니다. 예UpdatePanel 내부의 사용자 컨트롤 - 업데이트시 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 내부의 사용자 제어를 이용하고 업데이트하는 페이지 (버튼
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="div1" runat="server">
<uc:TestUC ID="test1" runat="server"></uc:TestUC>
</div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_OnClick" Text="Click" />
</ContentTemplate>
</asp:UpdatePanel>
protected void Button1_OnClick(object sender, EventArgs e)
{
test1.SetText(DateTime.Now.ToString());
}
크롬
하고 예상대로 작동하는 것 FF 클릭하면 현재 시간이 사용자 정의 컨트롤에 표시되고 다른 것은 발생하지 않음) IE8에서는 사용자 정의 컨트롤 내의 div가 스타일 (배경색, 테두리)을 잃습니다.
이 문제의 원인은 무엇이고이를 막기 위해 무엇을 할 수 있습니까?
예를 들어 설명하기가 어렵지만 UserControl 내에 정의 된 CSS는 무엇입니까? 그렇다면 외부로 이동하거나 UpdatePanel을 UserControl에 넣을 수 있습니까? – Jemes
예, CSS는 UserControl 내에 정의되어 있지만 필요합니다. – Kuzco
IE11 호환 모드로 WebControl에서 동일한 동작을 얻습니다. 인라인 "스타일"섹션은 사라지고 외부 CSS의 "링크 rel"및 외부 JavaScript의 "스크립트"태그도 사라집니다. 각 태그에 "id"를 추가하려고 시도했지만 성공하지 못했습니다. – Elo