zoukankan      html  css  js  c++  java
  • GridView学习之二自定义分页功能

      1就一些核心代码
      2ClientInfo.cs和ClientinfoAccessObj.cs在学习一中有过了
      3
      4using System;
      5using System.Data;
      6using System.Configuration;
      7using System.Collections;
      8using System.Web;
      9using System.Web.Security;
     10using System.Web.UI;
     11using System.Web.UI.WebControls;
     12using System.Web.UI.WebControls.WebParts;
     13using System.Web.UI.HtmlControls;
     14using System.Collections.Generic;
     15
     16public partial class GridViewPagingTest : System.Web.UI.Page
     17{
     18    private int PageSize = 10;  //每页显示记录数
     19
     20    //当前页码,从1开始,利用ViewState在回发之间保存数据
     21    private int curPage
     22    {
     23        get
     24        {
     25            return ViewState["curPage"== null ? 0 : Convert.ToInt32(ViewState["curPage"]);
     26        }

     27        set
     28        {
     29            ViewState["curPage"= value;
     30        }

     31    }

     32
     33    //总页数,利用ViewState在回发之间保存数据
     34    private int PageCount
     35    {
     36        get
     37        {
     38            return ViewState["PageCount"== null ? 0 : Convert.ToInt32(ViewState["PageCount"]);
     39        }

     40        set
     41        {
     42            ViewState["PageCount"= value;
     43        }

     44    }

     45
     46
     47    protected void Page_Load(object sender, EventArgs e)
     48    {
     49        if (!IsPostBack)
     50        {
     51            //第一次请求
     52            curPage = 1;
     53            GridView1.DataSource = GetClientsForPage(curPage);//根据当前页获得客户信息
     54            lblInfo.Text = string.Format("第{0}页/共{1}页"1, PageCount);
     55            GridView1.DataBind();//绑定数据
     56        }

     57    }

     58    //根据页下标获得页面的客户信息
     59    private List<ClientInfo> GetClientsForPage(int pageIndex)
     60    {
     61        ClientInfoAccessObj accessor = new ClientInfoAccessObj();
     62        List<ClientInfo> clients = accessor.GetAllClients();//获得所有客户信息
     63        PageCount = clients.Count / PageSize + 1;//将客户信息的总数除以每页显示的记录数获得总页数
     64        if (pageIndex > PageCount)
     65            return null;
     66        int StartIndex = (pageIndex - 1* PageSize;//获得数据下标
     67        List<ClientInfo> ret = new List<ClientInfo>();
     68        for (int i = StartIndex; i < StartIndex + PageSize && i < clients.Count; i++)
     69            ret.Add(clients[i]);
     70        return ret;
     71    }

     72    protected void btnNext_Click(object sender, EventArgs e)
     73    {
     74        if (curPage+1>PageCount)//判断当前是否大于页总数
     75        {
     76            curPage = PageCount;
     77        }

     78        else
     79        {
     80            curPage++;
     81        }

     82        GridView1.DataSource = GetClientsForPage(curPage);
     83        lblInfo.Text = string.Format("第{0}页/共{1}页", curPage, PageCount);
     84        GridView1.DataBind();
     85    }

     86    protected void btnPrew_Click(object sender, EventArgs e)
     87    {
     88        if (curPage - 1 ==0 )//判断当前是否大于页总数
     89        {
     90            curPage = 1;
     91        }

     92        else
     93        {
     94            curPage--;
     95        }

     96        GridView1.DataSource = GetClientsForPage(curPage);
     97        lblInfo.Text = string.Format("第{0}页/共{1}页", curPage, PageCount);
     98        GridView1.DataBind();
     99    }

    100    protected void btnGo_Click(object sender, EventArgs e)
    101    {
    102        try
    103        {
    104            int pageIndex = Convert.ToInt32(txtPageIndex.Text);
    105            if (pageIndex > PageCount)
    106            {
    107                pageIndex = PageCount;
    108            }

    109            if (pageIndex < 1)
    110            {
    111                pageIndex = 1;
    112            }

    113            curPage = pageIndex;
    114            GridView1.DataSource = GetClientsForPage(curPage);
    115            lblInfo.Text = string.Format("第{0}页/共{1}页", curPage, PageCount);
    116            GridView1.DataBind();
    117        }

    118        catch (Exception ex)
    119        {
    120            ClientScript.RegisterClientScriptBlock(this.GetType(),"info","alert('非法字符');",true);//向页面注入javaScript脚本
    121        }

    122    }

    123}

    124
  • 相关阅读:
    November 13th 2016 Week 47th Sunday The 1st Day
    November 12th 2016 Week 46th Saturday
    November 11th 2016 Week 46th Friday
    November 10th 2016 Week 46th Thursday
    November 9th 2016 Week 46th Wednesday
    November 8th 2016 Week 46th Tuesday
    windows 7文件共享方法
    Win7无线网络共享设置方法
    常量指针和指针常量
    如何查找局域网的外网ip
  • 原文地址:https://www.cnblogs.com/mdy41034264/p/1352116.html
Copyright © 2011-2022 走看看