LINQ et paging avec une listview
Question
J'ai une page avec un contrôle listview et un contrôle datapager. La source de données listviews est définie par programme à l’aide de ce code:
Dim dal as new dalDataContext Dim bookmarks = From data In dal.getData(userid) listview1.DataSource = bookmarks listview1.DataBind()
Lorsque je teste cette page dans un navigateur, l'erreur suivante apparaît: "ListView avec l'ID" listview1 "doit avoir une source de données qui implémente ICollection ou peut effectuer une pagination de la source de données si AllowPaging est à true."
Comment puis-je implémenter la pagination dans ce scénario?
Merci
La solution
Essayez
listview1.DataSource = bookmarks.ToArray()
J'ai eu le même problème cette semaine.
Autres conseils
Réponse au problème du nombre de clics que l'OP a rencontré par la suite - déplacez l'index de données vers le gestionnaire d'événements OnPreRender:
protected void Page_PreRender(object sender, EventArgs e)
{
listview1.DataBind();
}
ou peut-être créer une propriété de page changeante et bindlistview ici.
protected void lv_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
{
//set current page startindex, max rows and rebind to false
DataPager dp = lvNews.FindControl("lvDataPager1") as DataPager;
dp.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
BindListView();
}