使用LINQ可以很容易的实现数据分页功能,这主要通过应用两个泛型方法来实现。下面对这两个方法进行介绍。
(1)IEnumberable.Skip泛型方法
IEnumberable.Skip方法用来跳过序列中指定数量的元素,然后返回剩余的元素。语法如下:
publicstatic IEnumberableSkip(
this IEnumberablesource,int count)
参数说明如下:
source:一个IEnumberable,用于从中返回元素。
count:返回剩余元素前要跳过的元素数量
返回值:一个IEnumberable,包含输入序列中指定索引后出现的元素
(2)IEnumberable.Take泛型方法
IEnumberable.Take方法用来从序列的开头返回指定数量的连续元素。语法如下:
publicstatic IEnumberableTake(
this IEnumberablesource,int count)
参数说明如下:
source:要从中返回元素的序列。
count:眼返回的元素数量。
返回值:一个IEnumberable,包含输入序列开头的指定数量的元素
下面给出示例:
首先,建立LINQ数据源,连接数据库databaseName操作数据表Goods.
然后:
//创建Linq对象
LinqDBDataContext LDC = new LinqDBDataContext();
//设置每页显示3行记录
int pageSize= 3;
//自定义GridView控件的数据绑定函数
protectedvoid bindGrid()
{
//获取当前页面
int pageIndex = Convert.ToInt32(ViewState["pageIndex"]);
//使用Linq查询,并对查询的结果进行分页
var result = (from v in LDC.Goods
select new
{
商品编号 = v.goodsID,
商品名称 = v.goodsName,
商品价格 = v.goodsPrice,
商品数量 = v.sumSell
}).Skip(pageSize *pageIndex).Take(pageSize);
//设置GridView控件的数据源
GVGoods.DataSource = result;
//绑定GridView控件的数据源
GVGoods.DataBind();
LnkbtnFirst.Enabled = true;
LnkbtnUp.Enabled = true;
LnkbtnNext.Enabled = true;