LINQ и подкачка страниц с помощью listview
Вопрос
У меня есть страница с элементом управления 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.'
Как я могу реализовать подкачку в этом сценарии?
Спасибо
Решение
Попробуй
listview1.DataSource = bookmarks.ToArray()
У меня была такая же проблема на этой неделе.
Другие советы
Ответ на проблему с двойным щелчком мыши, с которой впоследствии столкнулся OP - переместить привязку данных в обработчик событий OnPreRender:
protected void Page_PreRender(object sender, EventArgs e)
{
listview1.DataBind();
}
или, может быть, создать страницу изменения свойств и bindlistview там.
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();
}