u137578217

GridView手动简单分页

 

GridView手动简单分页

 (2011-11-14 12:09:33)
标签:

gridview分页

杂谈

分类: Asp.Net

GridView简单手动分页取代了GridView控件只带的分页功能手动分页用起来更加灵活也很简单

自己测试没有用到数据库用TextFile.text代替,代码也不优质,希望能给初学者一些帮助,我也在学习当中

希望大家交流,如果你用到连接数据库做手动分页,有那些问题给我留言:

 

提示:代码可以完全复制,但要添加文本文件TextFile.text内容自己定义(多写点·有换行)

 

 GridView手动简单分页

1.页面设计

<%@ Page Language="C#" CodeFile="paging.aspx.cs" Inherits="paging" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>GridView手动简单分页</title>
</head>
<body>
    <form id="form1" runat="server">
<div>
  
        <asp:GridView ID="GridView1" runat="server">
            <PagerSettings Visible="False" />
            <Columns>
                <asp:TemplateField ConvertEmptyStringToNull="False" InsertVisible="False"
                    ShowHeader="False" Visible="False"></asp:TemplateField>
                <asp:BoundField ConvertEmptyStringToNull="False" HtmlEncode="False"
                    HtmlEncodeFormatString="False" InsertVisible="False" ShowHeader="False"
                    Visible="False" />
            </Columns>
        </asp:GridView>
<div>
</div>
        <asp:TextBox ID="TextBox3" runat="server" ontextchanged="TextBox3_TextChanged"></asp:TextBox>
    <div id="fanye" runat="server"></div>
        第<asp:TextBox ID="TextBox1" runat="server" Height="16px" Width="16px"></asp:TextBox>页:<asp:Button
            ID="Button1" runat="server" onclick="Button1_Click" Text="首页" />
        <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="上一页" />
        <asp:Button ID="Button3" runat="server" onclick="Button3_Click" Text="下一页" />
        <asp:Button ID="Button4" runat="server" onclick="Button4_Click" Text="尾页" />
&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:Button ID="Button5" runat="server" onclick="Button5_Click" Text="跳转"
            style="width: 40px" />
        <asp:TextBox ID="TextBox2" runat="server" Width="20px"></asp:TextBox>
        页<br />
        <br />
    </div>
    </form>
</body>
</html>

2.后台代码
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;

public partial class paging : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            绑定();
            Response.Write(GridView1.PageIndex + "<br>");
        }
        添加页码();
    }
    public void 添加页码()
    {
        for (int i = 1; i <= GridView1.PageCount; i++)
        {
            Button btn = new Button();
            btn.ID = "btnn" + i;

            btn.Text = i.ToString();
            btn.Click += new EventHandler(fanyeanniu);
            fanye.Controls.Add(btn);
        }
    }
    protected void fanyeanniu(object sender, EventArgs e)
    {
        GridView1.PageIndex = Convert.ToInt32(((Button)(sender)).Text) - 1;
        Response.Write(GridView1.PageIndex + "<br>");
        绑定();
    }
    //绑定数据()
    public void 绑定()
    {
        string[] yhlb = File.ReadAllLines(Server.MapPath("TextFile.txt"));//读取TextFile.txt中的数据放到一个yhlb的数组中(yhlb随便写)
        GridView1.AllowPaging = true;//把GridView控件分页设为true
        GridView1.PageSize = 2;//每2行数据分为一页
        int ym = GridView1.PageIndex;
        TextBox1.Text = (ym + 1).ToString();//在TextBox1里显示当前页数
        GridView1.DataSource = yhlb;//把数组中的数据放入GridView的数据源
        GridView1.DataBind();//绑定数据
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        GridView1.PageIndex = 0;//首页
        绑定();
    }
    //上一页
    protected void Button2_Click(object sender, EventArgs e)
    {
        int dqy = Convert.ToInt32(TextBox1.Text);//调取TextBox1的当前页数放到dqy变量中(dqy随便写)
        if (dqy >= 2)
        {
            GridView1.PageIndex = (dqy - 2);
        }
        绑定();
    }
    //下一页
    protected void Button3_Click(object sender, EventArgs e)
    {
        int dqy = Convert.ToInt32(TextBox1.Text);//调取TextBox1的当前页数放到dqy变量中(dqy随便写)

        if (dqy < GridView1.PageCount)
        {
            GridView1.PageIndex = (dqy);
        }
        绑定();
    }
    //尾页
    protected void Button4_Click(object sender, EventArgs e)
    {
        GridView1.PageIndex = GridView1.PageCount - 1;
        绑定();
    }
    //跳转到那一页
    protected void Button5_Click(object sender, EventArgs e)
    {
        if (TextBox2.Text != "")//如果TextBox2以有值就跳转到这一页
        {
            int tzy = Convert.ToInt32(TextBox2.Text);

            if (tzy > 0 && tzy <= GridView1.PageCount)//条件是大于0小于PageCount也就是最大页
            {
                GridView1.PageIndex = tzy - 1;
            }
        }
        绑定();
    }
    protected void TextBox3_TextChanged(object sender, EventArgs e)
    {
        TextBox3.Text = "1";
    }
}

 

分类:

技术点:

相关文章: