Pregunta

Tengo una página ASP.NET utilizando un marcador de posición. Las rejillas son de construcción mediante programación y se añade a este marcador de posición cuando se ejecuta la página. Ejemplo:

Código ASPX:

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

Código atrás:

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;
}

Esta página funciona sin problemas en Opera y Firefox. Internet Explorer 8 muestra la pantalla de mi "no se puede mostrar la página web".

¿Alguna idea?

¿Fue útil?

Otros consejos

Usted está siempre va a ejecutar en un montón de problemas al crear mediante programación controles. Se puede trabajar en conseguir, pero no en el poste, que tienen problemas en los manejadores onclick, etc .. hay un montón de aros que tiene que saltar a través de hacer controles programáticos funcionan bien.

Realmente no se ve a mí como es absolutamente necesario para crear mediante programación éstos. Se podía crear fácilmente el control de la red como un control de usuario, a continuación, pasar a través de su fuente de datos. Si es necesario, puede cargar los controles de usuario en tiempo de ejecución, y se corta toda la acumulación de la parte dynamiclaly rejilla y dejar que asp.net se encargue del desastre.

Esto no quiere decir que no puede hacerlo, como hace la gente todo el tiempo. Sólo estoy sugiriendo que se está instalando para mucho más trabajo para hacerlo de la manera que eres.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top