• 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
  • 相关阅读:
    使用 Rails Webpacker 安裝 Foundation 6
    如何验证 Email 地址:SMTP 协议入门教程
    PHPStorm.WebStrom等系列官方开发工具配置本地项目与运程服务器同步
    前端整合MathjaxJS的配置笔记
    支付宝2018年账单发布,更注重用户隐私保护
    公告!关于微信7.0安卓版已解决问题进展
    畅快买买买!购物类应用页面响应时间测评及优化建议
    是什么让我们走到最后,看完泪目!
    安卓绿色联盟执行组会议又双叒叕召开了
    华为如何打造智能终端的有趣灵魂?(上)
  • 原文地址:https://www.cnblogs.com/mdy41034264/p/1352116.html
Copyright © 2020-2023  润新知