User controls inside an UpdatePanel - css styles are gone when updating (IE8)(UpdatePanel 中的用户控件 - 更新时 css 样式消失(IE8))
问题描述
我在 UpdatePanel 中有一个用户控件.一旦触发事件并更新用户控件 - 它似乎失去了它的 css 样式.这仅在 IE8 中发生在我身上,而在 Chrome 和 FF 中则很好.
I have an user control inside an UpdatePanel. Once an event is triggered and updates the user control - it seems to lose its css styles. This happened to me in IE8 only, while in Chrome and FF it was fine.
例如一个用户控件:
<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 中使用用户控件并对其进行更新的页面:
A page using the user control inside an UpdatePanel and updating it:
<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 失去其样式(背景颜色、边框).
In Chrome and FF it seems to be working as expected (button click causes current time to display in the user control, nothing else happens), but in IE8 the div inside the user control loses its styles (background color, borders).
什么可能导致这个问题,可以做些什么来防止它?
What could be causing this problem, and what can be done to prevent it?
推荐答案
提到这个问题这里.
我尝试了这个建议 - 在 OnInit 中注册 css 链接 - 它似乎有效.
I tried the suggestion - registering the css link in the OnInit - and it seems to work.
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);
}
}
这篇关于UpdatePanel 中的用户控件 - 更新时 css 样式消失(IE8)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:UpdatePanel 中的用户控件 - 更新时 css 样式消失(IE8)
基础教程推荐
- 从 C# 控制相机设备 2022-01-01
- 重新排序 WPF TabControl 中的选项卡 2022-01-01
- SonarQube C# 分析失败“不是指针的有效行偏移" 2022-01-01
- Mono https webrequest 失败并显示“身份验证或解密失败" 2022-01-01
- 如果条件可以为空 2022-01-01
- 更新 Visual Studio 中的 DataSet 结构以匹配新的 SQL 数据库结构 2022-01-01
- 将数据集转换为列表 2022-01-01
- 获取C#保存对话框的文件路径 2022-01-01
- C# 9 新特性——record的相关总结 2023-04-03
- 在 VB6 或经典 ASP 中使用 .NET 2022-01-01
