ASP.NETラーニングのページングデータバインド_GridView
30322 ワード
フロントページ:
バックグラウンドコード:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView .aspx.cs" Inherits=" .GridView " %>
<!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" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText=" ID">
<ItemTemplate><%#Eval("Uid") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=" ">
<ItemTemplate><%#Eval("Subject") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=" ">
<ItemTemplate><%#Eval("Content") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="TRecordCount" runat="server"></asp:Label>
<asp:Label ID="TPageSize" runat="server"></asp:Label>
<asp:Label ID="TPageCount" runat="server"></asp:Label>
<asp:Label ID="numberPage" runat="server"></asp:Label>
<asp:LinkButton ID="First" runat="server" CommandName="first" OnCommand="First_Command"> </asp:LinkButton>
<asp:LinkButton ID="Pre" runat="server" CommandName="pre" OnCommand="First_Command"> </asp:LinkButton>
<asp:LinkButton ID="Next" runat="server" CommandName="next" OnCommand="First_Command"> </asp:LinkButton>
<asp:LinkButton ID="Last" runat="server" CommandName="last" OnCommand="First_Command"> </asp:LinkButton>
<asp:DropDownList ID="ddl" runat="server" OnSelectedIndexChanged="ddl_SelectedIndexChanged">
</asp:DropDownList>
</div>
</form>
</body>
</html>
バックグラウンドコード:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;
using System.Text;
namespace
{
/// <summary>
/// GridView
/// :
/// 1、
/// 1) GridView 。 。 GridView1.AutoGenerateColumns = true;
/// 2) 【 、 、 、 、 、 、 、 、 】
///
/// 2、
/// 1) : 、 、 、
/// 2) : , SQLDataAdapter DataSet
/// 3) , 、 、 、
/// 4) 【 】 SQl
/// 5) : Sql ,
/// 6) : , 【 、 】
/// 7) 、 、 、 :
/// 8)
///
/// </summary>
public partial class GridView : System.Web.UI.Page
{
private int PageCount; //
private int RecordCount; //
private int PageSize=5; // //
private int CurrentPageIndex; //
string strConnection = ConfigurationManager.ConnectionStrings["MyDB"].ToString(); //
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
#region
if (!IsPostBack)
{ // : ,
// PageCount、RecordCount、PageSize
DataSet ds=GetDataSet();
RecordCount = ds.Tables[0].Rows.Count; //
//
if (RecordCount % PageSize == 0)
{ // , 0, 。
PageCount = RecordCount / PageSize;
}
else
{ //
PageCount = RecordCount / PageSize + 1;
}
CurrentPageIndex = 1; //
// lable , 。
TRecordCount.Text = RecordCount.ToString();
TPageCount.Text = PageCount.ToString();
TPageSize.Text = PageSize.ToString();
numberPage.Text = CurrentPageIndex.ToString();
// ddl [ ]
for (int i = 1; i <= PageCount; i++)
{
ddl.Items.Add(i.ToString());
}
//
ShowData();
}
#endregion
CurrentPageIndex = int.Parse(numberPage.Text.ToString()); // , CurrentPageIndex
PageCount = int.Parse(TPageCount.Text.ToString()); //
}
/// <summary>
/// , SQLDataAdapter DataSet 【 】
/// </summary>
public DataSet GetDataSet()
{
DataSet ds = new DataSet();
using (SqlConnection sqlConn = new SqlConnection(strConnection))
{ //
string sqlStr = "select Uid,Subject,Content from tb_leaveWord"; //SQL
SqlDataAdapter sda = new SqlDataAdapter(sqlStr, sqlConn);
// ds
sda.Fill(ds);
}
return ds;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public DataSet GetEveryPageData()
{
DataSet ds = new DataSet();
using (SqlConnection sqlconn = new SqlConnection(strConnection))
{
string str = GetSqlStr();
SqlDataAdapter sda = new SqlDataAdapter(str, sqlconn);
sda.Fill(ds);
}
return ds;
}
/// <summary>
/// Sql
/// </summary>
/// <returns></returns>
public string GetSqlStr()
{
#region :
StringBuilder sb = new StringBuilder();
sb.Append("select top(");
sb.Append(PageSize.ToString());
sb.Append(")Uid,Subject,Content from tb_LeaveWord where ID not in((select top(");
sb.Append((PageSize * (CurrentPageIndex - 1)).ToString());
sb.Append(")ID from tb_LeaveWord))");
return sb.ToString();
#endregion
#region :
//StringBuilder sb = new StringBuilder();
//sb.AppendFormat("select top({0})Uid,Subject,Content from tb_LeaveWord where ID not in((select top({1})ID from tb_LeaveWord))", PageSize.ToString(), (PageSize * (CurrentPageIndex - 1)).ToString());
//return sb.ToString();
#endregion
#region :
//string str = "select top(" + PageSize.ToString() + ")Uid,Subject,Content from tb_LeaveWord where ID not in((select top(" + (PageSize * (CurrentPageIndex - 1)).ToString() + ")ID from tb_LeaveWord))";
#endregion
}
/// <summary>
///
/// </summary>
public void ShowData()
{
DataSet Sds = GetEveryPageData();
GridView1.DataSource = Sds;
// , 【 】
//GridView1.AutoGenerateColumns = true;
GridView1.DataBind();
numberPage.Text = CurrentPageIndex.ToString();
ddl.SelectedValue = CurrentPageIndex.ToString(); //
//
if(CurrentPageIndex==1){
First.Enabled = false;
Pre.Enabled = false;
}
else
{
First.Enabled = true;
Pre.Enabled = true;
}
if (CurrentPageIndex==PageCount)
{
Next.Enabled = false;
Last.Enabled = false;
}
else
{
Next.Enabled = true;
Last.Enabled = true;
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
string num = ddl.SelectedValue;
CurrentPageIndex = int.Parse(num);
ShowData();
}
/// <summary>
/// 、 、 、
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void First_Command(object sender, CommandEventArgs e)
{
string result = e.CommandName;
switch(result){
case "first":
CurrentPageIndex = 1;
break;
case "pre":
CurrentPageIndex--;
break;
case "next":
CurrentPageIndex++;
break;
case "last":
CurrentPageIndex = PageCount;
break;
}
ShowData();//
}
}
}