LINQ 和使用列表视图进行分页

发布于 2024-07-29 03:20:50 字数 350 浏览 7 评论 0原文

我有一个带有列表视图控件和数据页控件的页面。 使用以下代码以编程方式设置 listviews 数据源:

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

当我在浏览器中测试此页面时,会出现错误:“带有 id 'listview1' 的 ListView 必须具有一个实现 ICollection 或可以执行数据源分页(如果允许分页)的数据源真的。'

在这种情况下如何实现分页呢?

谢谢

I have a page with a listview control and a datapager control. The listviews datasource is set programatically using this code:

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

When i test this page in a browser it comes up with the error: 'ListView with id 'listview1' must have a data source that either implements ICollection or can perform data source paging if AllowPaging is true.'

How can i implement paging in this scenario?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

后知后觉 2024-08-05 03:20:50

尝试一下

listview1.DataSource = bookmarks.ToArray()

,我这周也遇到了同样的问题。

Try

listview1.DataSource = bookmarks.ToArray()

I had the same problem this week.

空城仅有旧梦在 2024-08-05 03:20:50

OP 随后遇到的点击两次问题的答案 - 将 Databind 移至 OnPreRender 事件处理程序:

    protected void Page_PreRender(object sender, EventArgs e)
    {
        listview1.DataBind();
    }

An answer to the click-twice problem that the OP subsequently encountered - move the Databind to the OnPreRender event handler:

    protected void Page_PreRender(object sender, EventArgs e)
    {
        listview1.DataBind();
    }
稀香 2024-08-05 03:20:50

或者也许创建一个页面属性更改并在那里绑定列表视图。

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

or maybe create a page properties changing and bindlistview there.

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();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文