Динамическое управление не работает с IE8
Я работаю в среде 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>
, Этот 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;
}
1 ответ
Я думаю, что это ошибка в IE8, это может быть обходной путь. Вместо этого:
dvPhotos.Controls.Add(hgc);
Добавьте hgc в заголовок. Что-то вроде этого:
Page.Header.Controls.Add(hgc);
Прочитайте это, я думаю, что он нашел решение вашей проблемы:
http://siderite.blogspot.com/2008/05/controls-collection-cannot-be-modified.html