skinid - gridview asp.net example
cambiar gridview para renderizar el elemento thead (1)
Al parecer, el evento de pre representación es el mejor lugar para poner esto. El truco es que en algunas circunstancias que me eluden, la propiedad HeaderRow será nula, así que solo necesito verificar null = (
private void MakeAccessible()
{
if (HeaderRow != null && !AllowPaging)
{
UseAccessibleHeader = true;
HeaderRow.TableSection = TableRowSection.TableHeader;
FooterRow.TableSection = TableRowSection.TableFooter;
}
}
protected override void OnPreRender(EventArgs e)
{
MakeAccessible();
}
Lol no se me ocurrió antes que a veces es nulo y otras veces no lo es ... doh
He visto algunas otras publicaciones sobre cómo hacer que esto funcione ... sin embargo, ninguna de ellas parece estar preocupada por el caso en el que ha subido el GridView como su propio control de servidor personalizado.
Estoy intentando establecer estas propiedades para que GridView represente un elemento thead pero continuamente obtengo una excepción de referencia nula. ¿Ningún arrendatario?
Aquí está el método DatBind que anulé
new public void DataBind()
{
base.DataBind();
UseAccessibleHeader = true;
HeaderRow.TableSection = TableRowSection.TableHeader; //<<-- NRE here
FooterRow.TableSection = TableRowSection.TableFooter;
}
Quiero que esta lógica se encapsule dentro del control GridView y no se establezca externamente. Estamos tratando de actualizar este comportamiento y tendríamos que agregar el código para configurar esto en mil lugares diferentes si tomamos ese enfoque.