我有一个包含listview控件和datapager控件的页面。 listviews数据源使用以下代码以编程方式设置:
Dim dal as new dalDataContext Dim bookmarks = From data In dal.getData(userid) listview1.DataSource = bookmarks listview1.DataBind()
当我在浏览器中测试此页面时,它会出现错误:'ListView with id'listview1'必须具有实现ICollection的数据源,或者如果AllowPaging为真,则可以执行数据源分页。'
如何在这种情况下实现分页?
由于
答案 0 :(得分:18)
尝试
listview1.DataSource = bookmarks.ToArray()
本周我遇到了同样的问题。
答案 1 :(得分:2)
对OP随后遇到的点击两次问题的回答 - 将Databind移动到OnPreRender事件处理程序:
protected void Page_PreRender(object sender, EventArgs e)
{
listview1.DataBind();
}
答案 2 :(得分:0)
或者可能在那里创建页面属性更改和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();
}