Thomas Bandt

Über mich | Kontakt | Archiv

ASP.NET 2.0 GridView an eigene Liste binden

Was gilt es zu beachten, wenn man eine eigene Liste, d.h. ein Objekt, was weitere Objekte enthält und sich durchlaufen lässt, an ein GridView-Control binden will?

Zuerst einmal braucht es die Fähigkeit durchlaufen zu werden, und das nicht nur in eine Richtung. Das kann man lösen, indem man "IList", und die 2 folgenden Methoden die das Interface bereitstellt, implementiert:

#region IList Members

object IList.this[int index]
{
   get
   {
      return items[index];
   }
}

#endregion

#region ICollection Members

public int Count
{
   get
   {
      return items.Count;
   }
}

#endregion

Items ist dabei eine generische Liste von meinem benutzerdefinierten Typ. Nun lässt sich das Objekt an die GridView binden. Was ist aber mit dem Paging? Das funktioniert noch nicht - versucht man es, erhält man:

"The data source does not support server-side data paging."

Die Lösung dafür:

protected void GWHitlist_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
   GWHitlist.PageIndex = e.NewPageIndex;
   GWHitlist.DataBind();
}



« Zurück  |  Weiter »