IE8 говорит, что «не может отобразить веб-страницу» при использовании динамического PlaceHolder - PullRequest
0 голосов
/ 19 августа 2010

У меня есть страница ASP.NET с использованием PlaceHolder.Сетки создаются программно и добавляются в этот PlaceHolder при запуске страницы.Пример:

Код ASPX:

<asp:PlaceHolder ID="myPlaceHolder" runat="server" />

Код:

foreach (var country in Tables.Countries())
{
  var nGrid = BuildGrid(country.Code);
  if (nGrid.Rows.Count > 0)
  {
      var lTitle = new Literal();
      lTitle.Text = "<h2>Stats for country " + country.Name + "</h2>";

      myPlaceHolder.Controls.Add(lTitle);
      myPlaceHolder.Controls.Add(nGrid);
  }
  nGrid.Dispose();
}

private GridView BuildGrid(short countryCode)
{
    GridView nGrid = new GridView();
    nGrid.ID = "gr_" + countryCode;
    nGrid.SkinID = "rpSkin";
    nGrid.AutoGenerateColumns = false;
    nGrid.AllowPaging = false;
    nGrid.AllowSorting = false;
    nGrid.RowStyle.VerticalAlign = VerticalAlign.Top;
    nGrid.EnableViewState = false;

    var nField = new BoundField
                                 {
                                     HeaderText = "People",
                                     DataField = "PeopleCount"
                                 };
                nGrid.Columns.Add(nField);

    // more BoundFields of this type exist

    // This is basically the GridViewHelper class that gets Row Totals
    // Disabling this doesn't help, either
    HelpGrid(nGrid);
    nGrid.DataSource = Country.GetPeople(countryCode);
    nGrid.DataBind();
    return nGrid;
}

Эта страница работает безупречно в Opera и Firefox.Internet Explorer 8 показывает мне экран «не удается отобразить веб-страницу».

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 26 августа 2010
0 голосов
/ 19 августа 2010

Вы всегда будете сталкиваться с кучей проблем при программном создании элементов управления.Он может работать на get, но не на post, у вас есть проблемы с обработчиками OnClick и т. Д., Вам нужно пройти через множество обручей, чтобы программные элементы управления работали правильно.для меня, как вы абсолютно необходимо программно создать их.Вы можете так же легко создать элемент управления сеткой, как пользовательский элемент управления, а затем передать свой источник данных.При необходимости вы можете загрузить пользовательские элементы управления во время выполнения, а также вырезать всю сборку части динамической сетки и позволить asp.net позаботиться о беспорядке.

Это не значит, что вы не можетеделай это, как люди все время.Я просто предполагаю, что вы настраиваете себя на гораздо большую работу, чтобы делать это таким, какой вы есть.

...