数据源不支持服务器端数据分页

Cla*_*ear 56 c# linq asp.net sorting gridview

我的屏幕上有一个GridView,需要它才能允许分页.

标记:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
  AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">
  <Columns>
    <asp:BoundField DataField="appID" HeaderText="appID" SortExpression="appID" />
  </Columns>
</asp:GridView>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
  SelectMethod="GetBookingId" 
  TypeName="AppointmentRepository">
  <SelectParameters>
    <asp:Parameter Name="maximumRows" Type="Int32" />
    <asp:Parameter Name="startRowIndex" Type="Int32" />
  </SelectParameters>
</asp:ObjectDataSource>
Run Code Online (Sandbox Code Playgroud)

代码隐藏:

ObjectDataSource1.SelectParameters["maximumRows"].DefaultValue = "10";
ObjectDataSource1.SelectParameters["startRowIndex"].DefaultValue = "0";
Run Code Online (Sandbox Code Playgroud)

LINQ查询:

public IQueryable<tblAppointment> GetBookingId(int maximumRows, int startRowIndex)
{
    var result = (FROM a IN dc.tblAppointments
                  SELECT a).Skip(startRowIndex).Take(maximumRows);
}
Run Code Online (Sandbox Code Playgroud)

但是我收到此错误:

数据源不支持服务器端数据分页.

我究竟做错了什么?

alm*_*ori 128

ToList()结果var的简单应该可以工作.

编辑:由于BornToCode在我的回答下面的评论中解释,错误的原因是数据源应该实现ICollection.IEnumerable不会,当你这样做时,ToList()它会转换成一个实现ICollection的列表.