• Gridview使用LINQ分页例子


    Linq的分页主要是使用了skip和take
    
    关于skip 参看 http://msdn.microsoft.com/zh-cn/library/bb357513.aspx
    
    关于take 参看http://msdn.microsoft.com/zh-cn/library/bb300906.aspx
    
    另外说明下NorthWindDataContext 我是采用了Linq的类成长办法自动生成的
    
    关于Linq的语法和介绍可以参看http://www.cnblogs.com/lovecherry/archive/2007/08/13/853754.html
    
    上面介绍的还不错。其实如果你用过SQL,用过枚举类型会发现LINQ没啥,但是确实很省力,会发现以前的ORM工具在小型开发的时候直接用LINQ算了。
    
    
    
    前台代码Default.aspx
    
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <%@ Register assembly="AspNetPager" namespace="Wuqi.Webdiyer" tagprefix="webdiyer" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:GridView ID="GridView1" runat="server">
            </asp:GridView>
        
            <br />
            <webdiyer:AspNetPager ID="Pager" runat="server" 
                PageIndexBoxType="DropDownList" ShowPageIndexBox="Always" SubmitButtonText="Go" 
                TextAfterPageIndexBox="" TextBeforePageIndexBox="转到" 
                CurrentPageButtonPosition="End" 
                CustomInfoHTML="共%PageCount%页,当前为第%CurrentPageIndex%页,每页%PageSize%条" 
                FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" 
                onpagechanged="Pager_PageChanged" PrevPageText="上一页">
            </webdiyer:AspNetPager>
        
        </div>
        </form>
    </body>
    </html>
    
    后台代码Default.aspx.cs
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //得到所有的分页信息和预设的分页大小
                //pagesize来自girdview
                NorthWindDataContext context = new NorthWindDataContext();
                int total = (from custom in context.GetTable<Customers>()
                             select custom).Count();
                Pager.PageSize = GridView1.PageSize;
                Pager.RecordCount = total;
    
                gvDataBind(GridView1.PageSize, 1);
    
            }
        }
    
        protected void gvDataBind(int pagesize, int pageindex)
        {
            NorthWindDataContext context = new NorthWindDataContext();
            var customs = (from custom in context.GetTable<Customers>()
                           orderby custom.ContactName
                           select new
                           {
                               custom.ContactName,
                               custom.CustomerID,
                               custom.CompanyName,
                               custom.ContactTitle
    
                           }).Skip((pageindex - 1) * pagesize).Take(pagesize);
            GridView1.DataSource = customs;
            GridView1.DataBind();               
    
        }
    
    
        protected void Pager_PageChanged(object sender, EventArgs e)
        {
            GridView1.PageIndex = Pager.CurrentPageIndex;
            gvDataBind(GridView1.PageSize, Pager.CurrentPageIndex);
        }
    }
  • 相关阅读:
    Android数据存储之Application
    contentOffset、contentSize和contentInset
    block
    IOS中的深拷贝和浅拷贝
    手势图的设计原理(2)拖拽、捏合、轻扫、旋转
    深浅拷贝的应用-copy、mutableCopy
    手势图的设计原理(1)建立、开始、移动、结束、点击、长按
    UIView
    MVC-Model
    UIPageControl页面控制的控件
  • 原文地址:https://www.cnblogs.com/xw2cc1314/p/2971266.html
Copyright © 2020-2023  润新知