C# linq到sql gridview分页服务器端

C# linq到sql gridview分页服务器端,c#,asp.net,sql-server,linq,gridview,C#,Asp.net,Sql Server,Linq,Gridview,我有一个表,其中包含大量绑定到Gridview的记录。目前,它在页面加载时绑定所有数据。我正在使用以下LINQ到SQL: gvView.datasource = from c in _db.tblCategories where c.bIsDeleted == false select c; gvView.databind(); 我想用分页来转换它,这样它就不会一次显示所有数据。您需要使用跳过和li

我有一个表,其中包含大量绑定到Gridview的记录。目前,它在页面加载时绑定所有数据。我正在使用以下LINQ到SQL:

gvView.datasource = from c in _db.tblCategories
                        where c.bIsDeleted == false
                        select c;
gvView.databind();

我想用分页来转换它,这样它就不会一次显示所有数据。

您需要使用
跳过
linq
方法。 例如,请遵循此链接

这是一个示例,但为了更好地理解,请浏览链接

var custQuery2 =
    (from cust in db.Customers
    orderby cust.ContactName
    select cust)
    .Skip((currentpagenumber-1)*pagesize).Take(pagesize);
要使用上述代码,您需要更改方法。您需要根据用户的选择确定当前页码和大小,执行此代码并将其重新绑定到gridview。

.CS代码

gvView.datasource = (from c in _db.tblCategories
                        where c.bIsDeleted == false
                        select c).ToList();
gvView.databind();
.ASPX GridView代码:

<asp:GridView ID="gvView" runat="server" AutoGenerateColumns="false" AllowPaging="true"
    OnPageIndexChanging="OnPageIndexChanging" PageSize="10">
    <Columns>
        <asp:BoundField ItemStyle-Width="150px" DataField="myField1" HeaderText="myField1" />
    </Columns>
</asp:GridView>
用于GridView分页