LINQ и пейджинг со списком - PullRequest
5 голосов
/ 30 июля 2009

У меня есть страница с элементом управления listview и элементом управления datapager. Источник данных listviews устанавливается программно с помощью этого кода:

Dim dal as new dalDataContext
Dim bookmarks = From data In dal.getData(userid)
listview1.DataSource = bookmarks
listview1.DataBind()

Когда я тестирую эту страницу в браузере, появляется сообщение об ошибке: «ListView с идентификатором« listview1 »должен иметь источник данных, который либо реализует ICollection, либо может выполнять подкачку страниц источника данных, если AllowPaging имеет значение true. '

Как я могу реализовать пейджинг в этом сценарии?

Спасибо

Ответы [ 3 ]

18 голосов
/ 30 июля 2009

Попробуйте

listview1.DataSource = bookmarks.ToArray()

У меня была такая же проблема на этой неделе.

2 голосов
/ 13 октября 2010

Ответ на проблему двойного щелчка, с которой впоследствии столкнулся OP - переместите привязку данных в обработчик события OnPreRender:

    protected void Page_PreRender(object sender, EventArgs e)
    {
        listview1.DataBind();
    }
0 голосов
/ 28 января 2015

или, может быть, создать изменяющиеся свойства страницы и просмотреть список привязок там.

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