在asp.net中尝试为没有数据源控件的listview创建数据选择器时获取绑定错误

时间:2016-01-11 11:56:38

标签: c# asp.net listview

我正在尝试为页面底部的列表视图创建数据抓取器。当我在没有数据采集器的情况下绑定listview时,我没有得到任何错误,并且所有内容都按照它应该被列出。但是,当我尝试创建数据夹时,我收到一条错误消息: list需要数据源,或者如果AllowPaging为真,则需要ICollection作为数据源

这是我的列表视图:

<asp:DataPager ID="DataPager1" runat="server" PagedControlID="lstAllProducts" PageSize="12">
        <Fields>
            <asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="true" ShowLastPageButton="true" />
        </Fields>
    </asp:DataPager>

这是datapager:

if (!IsPostBack)
        {
            lstAllProducts.DataSource = svc.GetAllItemsOverview().OrderByDescending(i => i.id);
            lstAllProducts.DataBind();
        }

这里是我在页面加载中绑定listview数据的地方:

<div class="seatsWrapper">
    <ul class="seatsContainer r1">
        <li>A1</li>
        <li>A2</li>
        <li>A3</li>
        <li>A4</li>
        <li>A5</li>
        <li>A6</li>
        <li>A7</li>
        <li>A8</li>
        <li>A9</li>
        <li>A10</li>
        <li>A11</li>
        <li>A12</li>
        <li>A13</li>
        <li>A14</li>
        <li>A15</li>
    </ul>       
    <ul class="seatsContainer r2">
        <li>B1</li>
        <li>B2</li>
        <li>B3</li>
        <li>B4</li>
        <li>B5</li>
        <li>B6</li>
        <li>B7</li>
    </ul>
    <ul class="seatsContainer r3">
        <li>C1</li>
        <li>C2</li>
        <li>C3</li>
    </ul>
</div>

我试图按照此链接中的指南操作。 http://weblogs.asp.net/hajan/paging-listview-using-datapager-without-using-datasource-control

希望你们中的一些人有一个关于它为什么不起作用的建议。

1 个答案:

答案 0 :(得分:0)

您的代码存在的问题是,@PostConstruct需要完整的数据来计算页码,但您要为DataPager分配IEnumerable<T>,这将在绑定数据时解析(您可以阅读ListView)。

要解决此问题,只需使用LINQ Deferred ExecutionToArray枚举结果: -

ToList