Parsing GridView's own paging and its combination with DropDownList

  • 2021-09-04 23:56:23
  • OfStack

Implementation of paging function in GridView:

To realize the function of GrdView paging

Do the following:

Change the AllowPaging property of the GrdView control to true. Change the PageSize property of the GrdView control to an arbitrary value (default is 10) Change the PageSetting of the GrdView control- > Mode is Numeric, etc. (default is Numeric) This property is paging style.

The GridView property is set, and the paging style can also be seen from the page.

Now start to implement the paging function:

In < < asp:GridView ID=...... > Add after, OnPageIndexChanging= "GridView1_PageIndexChanging" In the corresponding aspx. cs, add:

  protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
  {
    GridView1.PageIndex = e.NewPageIndex;
    InitPage(); // Rebind GridView Function of data 
  }

Reference code:


<%@ 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>
     Display per page <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>
     A record  &nbsp; &nbsp; 
    <asp:Label ID="lblMsg" runat="server"></asp:Label>
  </div>
  </form>
</body>
</html>

Background code:


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 = " The current page is the " + (GridView1.PageIndex + 1).ToString() + " Pages, in total " + (GridView1.PageCount).ToString() + " Page ";
  }
  protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
  {
    GridView1.PageIndex = ((GridViewPageEventArgs)e).NewPageIndex;
    BindGrid(); // Rebind GridView Function of data 
  }
}

To sum up, it is convenient to use in the future.


Related articles: