解析GridView自带分页及与DropDownList结合使用

2017-02-14 15:06:17 .net
本文主要介绍了GridView自带的分页功能的实现方法。具有一定的参考价值,需要的朋友一起来看下吧

GridView自带的分页功能实现:

要实现GrdView分页的功能

操作如下:

  1. 更改GrdView控件的AllowPaging属性为true。
  2. 更改GrdView控件的PageSize属性为 任意数值(默认为10)
  3. 更改GrdView控件的PageSetting->Mode为Numeric等(默认为Numeric)该属性为分页样式。

GridView属性设置好了,从页面上也能看到分页样式。

现在开始实现分页的功能:

  1. 在<<asp:GridView ID=......>后添加,OnPageIndexChanging="GridView1_PageIndexChanging"
  2. 在对应的aspx.cs中添加:
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
      GridView1.PageIndex = e.NewPageIndex;
      InitPage(); //重新绑定GridView数据的函数
    }

    参考代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="gridview_zidaifenye.aspx.cs" Inherits="gridview_zidaifenye" %>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
      <title></title>
    </head>
    <body>
      <form id="form1" runat="server">
      <div>
       <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
          AutoGenerateColumns="False" DataKeyNames="ID" PagerSettings-Mode="Numeric"
          OnRowDataBound="GridView1_RowDataBound" PageSize="5" OnPageIndexChanging="GridView1_PageIndexChanging">
          <Columns>
            <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
              SortExpression="ID" />
            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
            <asp:BoundField DataField="Stock" HeaderText="Stock" SortExpression="Stock" />
          </Columns>
        </asp:GridView>
        每页显示<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
          <asp:ListItem>5</asp:ListItem>
          <asp:ListItem>10</asp:ListItem>
          <asp:ListItem>15</asp:ListItem>
        </asp:DropDownList>
        条记录     
        <asp:Label ID="lblMsg" runat="server"></asp:Label>
      </div>
      </form>
    </body>
    </html>
    后台代码:
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    public partial class gridview_zidaifenye : System.Web.UI.Page
    {
      DBAccess db = new DBAccess();
      protected void Page_Load(object sender, EventArgs e)
      {
        if (!IsPostBack)
        {
          // gvProduct.DataSource = getData();
          // gvProduct.DataBind();
          BindGrid();
        }
      }
      public void BindGrid()
      {
        SqlCommand comm = db.CreateCommand("select * from product p,Uuser u where p.userid=u.id");
        SqlDataAdapter sda = new SqlDataAdapter();
        sda.SelectCommand = comm;
        DataSet ds = new DataSet();
        sda.Fill(ds,"Datatable");
        DataView dv = ds.Tables[0].DefaultView;
        GridView1.DataSource = dv;
        GridView1.DataBind();
      }
      protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
      {
        GridView1.PageSize = int.Parse(DropDownList1.SelectedValue);
        GridView1.PageIndex = 0;
        BindGrid(); //GridView1.DataBind();
      }
      protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
      {
        lblMsg.Text = "当前页为第" + (GridView1.PageIndex + 1).ToString() + "页,共" + (GridView1.PageCount).ToString() + "页";
      }
      protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
        GridView1.PageIndex = ((GridViewPageEventArgs)e).NewPageIndex;
        BindGrid(); //重新绑定GridView数据的函数
      }
    }
    原文链接:http://www.cnblogs.com/jycboy/p/5172380.html