Динамическое управление не работает с 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

Другие вопросы по тегам