【发布时间】:2011-01-30 10:27:24
【问题描述】:
我在 UpdatePanel 中有一个用户控件。一旦触发事件并更新用户控件 - 它似乎失去了它的 css 样式。这仅在 IE8 中发生在我身上,而在 Chrome 和 FF 中则很好。
例如一个用户控件:
<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());
}
在 Chrome 和 FF 中,它似乎按预期工作(按钮单击导致当前时间显示在用户控件中,没有其他任何反应),但在 IE8 中,用户控件内的 div 失去其样式(背景颜色、边框) .
什么可能导致这个问题,可以做些什么来防止它?
【问题讨论】:
-
从您的示例中很难看出,但 CSS 是否在 UserControl 中定义?如果是这样,您可以将它移到外面或将 UpdatePanel 放在 UserControl 中吗?
-
是的,css 是在 UserControl 中定义的,但我确实需要它。
-
我从具有 IE11 兼容模式的 WebControl 获得了相同的行为:内联“样式”部分消失了,外部 CSS 的“链接 rel”和外部 JavaScript 的“脚本”标签也消失了。我尝试将“id”添加到每个标签,但没有成功。
标签: asp.net user-controls updatepanel