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