【问题标题】:Dynamic Controls doesn't work well with IE8动态控件不适用于 IE8
【发布时间】:2012-11-30 16:02:22
【问题描述】:

我在 Microsoft .NET 4.0 环境中工作。我有一个可变数量的图片列表及其标题,要写入屏幕,因此,我在 ASP.NET 的代码隐藏中使用动态控件。

我写了以下代码:

对于我定义的列表中的每张图片:

标签控件:

Label lbPic = new Label();
lbPic.Text = "PicTitle";

图片控制:

ImageButton ImgPic = new ImageButton();
ImgPic.ID = "imgID";
ImgPic.CssClass = "myImgCSS";
ImgPic.ImageUrl = "myImgUrl";

HTML 控件同时包含标签和图片:

HtmlGenericControl hgc = new HtmlGenericControl("myDivName");
hgc.Controls.Add(lbPic);
hgc.Controls.Add(imgPic);
hgc.Attributes.Add("class", "myHgcCss");

每张图片(img+lable 对)都包含在:

dvPhotos.Controls.Add(hgc);

dvPhotos 在 .aspx 文件中定义, 作为 <div> 的 ID。这个 div 是用runat="server" 定义的。

图片在 FireFox、Chrome 和 IE9 中看起来不错。它们在 IE8 中看起来很糟糕。

好像是HTML控件忽略了“myHgcCss”,所以把所有的图片和标签都放在dvPhotos里乱七八糟了。

知道为什么它不适用于 IE8 吗?

CSS相关部分:

.myHgcCss
{
    float:right;
    height: 180px;
    width:  170px;
    background-color : #FFFFFF;
    color:#003300;
    margin: 10px 10px 10px 10px; 
    font-size:15px;
    font-style:normal;
    text-align:right;
}
.myImgCSS
{
    height: 150px;
    width:  150px;
    margin: 10px 10px 10px 10px;
}

【问题讨论】:

  • 如果将hgc.Attributes.Add("class", "myHgcCss"); 放在hgc.Controls.Add 行之前,它会做同样的事情吗?这听起来像是 Firefox 与 IE8 缓存内容的问题。该站点讨论了 HtmlGenericControl 和 IE8 的此类错误:channel9.msdn.com/Forums/TechOff/…
  • 拜托,你能把.css文件的相关部分贴出来吗?
  • 我试过换个地方,没区别...

标签: asp.net .net internet-explorer-8 htmlgenericcontrol


【解决方案1】:

我认为这是 IE8 中的一个错误,这可能是一种解决方法。而不是这样做:

dvPhotos.Controls.Add(hgc);

将 hgc 添加到标题中。像这样的:

Page.Header.Controls.Add(hgc);

阅读这篇文章,我认为他找到了解决您同样问题的方法:

https://siderite.dev/blog/controls-collection-cannot-be-modified.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多