GridView总结一:GridView自带分页及与DropDownList结合使用

时间:2022-03-26 05:45:35

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>
条记录 &nbsp; &nbsp;
<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数据的函数
}
}

总结下,方便以后用到。