zoukankan      html  css  js  c++  java
  • GridView 72般绝技之与Linq喜结连理 之1,GridView自动分页

    看了园子里的文章,有感而发,用Linq去实现。
    http://blog.csdn.net/lipan2/archive/2008/09/14/2795707.aspx
    此节主要关注Linq的分页,源代码在后边附上(喜欢附上源代码)

    客服端代码:

    代码
            <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

    设置着三个属性即可:
    AllowPaging="True"
    AllowSorting="True" AutoGenerateColumns="False"
    PageSize="5"
    服务端代码:

    代码
     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);
            }


    实现数据的绑定:以及在点击“2”数字的时候处理的代码。这种绑定数据的方法不好之处在于,只要绑定的数据大于5条时,才显示
    有数字页。而且,Linq 的分页也同样有问题。它是查询出来所有的学生信息,然后再用Skip和Take方法实现分页的。急切需要网友斧正。

    代码
            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;



  • 相关阅读:
    AppDelegate动态加载StoryBoard
    带交互的 iOS 产品原型可以用什么软件制作?
    day06.1-module模块和包介绍
    day05.2-一个文件的增删改查实例
    day05.1-文件处理
    day04.4-装饰器
    day04.3-生成器
    day04.2-迭代器
    day04.1-三元表达式与列表解析
    day03.2-内置函数的使用
  • 原文地址:https://www.cnblogs.com/csharponworking/p/1712264.html
Copyright © 2011-2022 走看看