我在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 +标签对)都包含在:
中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;
}
答案 0 :(得分:0)
我认为这是IE8中的一个错误,这可能是一个解决方法。而不是这样做:
dvPhotos.Controls.Add(hgc);
将hgc添加到标题中。像这样:
Page.Header.Controls.Add(hgc);
阅读本文,我认为他找到了解决同样问题的方法:
http://siderite.blogspot.com/2008/05/controls-collection-cannot-be-modified.html