http://blog.csdn.net/lipan2/archive/2008/09/14/2795707.aspx
此节主要关注Linq的分页,源代码在后边附上(喜欢附上源代码)
客服端代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<asp:GridView ID="gridViewCourse" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False"
PageSize="5" Width="614px"
onpageindexchanged="gridViewCourse_PageIndexChanged"
onpageindexchanging="gridViewCourse_PageIndexChanging">
<Columns>
<asp:BoundField DataField="Cno" HeaderText="学号" />
<asp:BoundField DataField="Name" HeaderText="姓名" />
<asp:BoundField DataField="Time" HeaderText="入学时间" />
<asp:BoundField DataField="Money" HeaderText="钱" />
</Columns>
</asp:GridView
AllowSorting="True" AutoGenerateColumns="False"
PageSize="5" Width="614px"
onpageindexchanged="gridViewCourse_PageIndexChanged"
onpageindexchanging="gridViewCourse_PageIndexChanging">
<Columns>
<asp:BoundField DataField="Cno" HeaderText="学号" />
<asp:BoundField DataField="Name" HeaderText="姓名" />
<asp:BoundField DataField="Time" HeaderText="入学时间" />
<asp:BoundField DataField="Money" HeaderText="钱" />
</Columns>
</asp:GridView
设置着三个属性即可:
AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False"
PageSize="5"
服务端代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public partial class GridNoCodePageForm : System.Web.UI.Page
{
private CourserService courseServcie;
private int currentIndex = 1;
private int pageSize = 5;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
courseServcie = new CourserService();
List<Course> courseList = courseServcie.FindAllList();
if (courseList.Count == 0)
MessageBox.Show("没有数据了!");
this.gridViewCourse.DataSource = courseList;
this.gridViewCourse.DataBind();
}
}
private void BindSource(int pageIndex)
{
courseServcie = new CourserService();
List<Course> courseList = courseServcie.FindList(pageIndex, pageSize);
if (courseList.Count == 0)
MessageBox.Show("没有数据了!");
this.gridViewCourse.DataSource = courseList;
this.gridViewCourse.DataBind();
}
protected void gridViewCourse_PageIndexChanged(object sender, EventArgs e)
{
}
protected void gridViewCourse_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
int currentIndex = e.NewPageIndex;
BindSource(currentIndex);
}
{
private CourserService courseServcie;
private int currentIndex = 1;
private int pageSize = 5;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
courseServcie = new CourserService();
List<Course> courseList = courseServcie.FindAllList();
if (courseList.Count == 0)
MessageBox.Show("没有数据了!");
this.gridViewCourse.DataSource = courseList;
this.gridViewCourse.DataBind();
}
}
private void BindSource(int pageIndex)
{
courseServcie = new CourserService();
List<Course> courseList = courseServcie.FindList(pageIndex, pageSize);
if (courseList.Count == 0)
MessageBox.Show("没有数据了!");
this.gridViewCourse.DataSource = courseList;
this.gridViewCourse.DataBind();
}
protected void gridViewCourse_PageIndexChanged(object sender, EventArgs e)
{
}
protected void gridViewCourse_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
int currentIndex = e.NewPageIndex;
BindSource(currentIndex);
}
实现数据的绑定:以及在点击“2”数字的时候处理的代码。这种绑定数据的方法不好之处在于,只要绑定的数据大于5条时,才显示
有数字页。而且,Linq 的分页也同样有问题。它是查询出来所有的学生信息,然后再用Skip和Take方法实现分页的。急切需要网友斧正。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public List<Course> FindList(int pageIndex, int pageSize)
{
pageIndex = pageIndex * pageSize - pageSize;
List<Course> objList = new List<Course>();
Table<Course> couse = context.GetTable<Course>();
var courseQuery =
from couseItem in couse
orderby couseItem.Cno
select couseItem;
var pageQuery = courseQuery.Skip<Course>(pageIndex).Take<Course>(pageSize);
foreach (Course cou in pageQuery)
{
objList.Add(cou);
}
return objList;
{
pageIndex = pageIndex * pageSize - pageSize;
List<Course> objList = new List<Course>();
Table<Course> couse = context.GetTable<Course>();
var courseQuery =
from couseItem in couse
orderby couseItem.Cno
select couseItem;
var pageQuery = courseQuery.Skip<Course>(pageIndex).Take<Course>(pageSize);
foreach (Course cou in pageQuery)
{
objList.Add(cou);
}
return objList;