using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace fenye
{
/// <summary>
/// DataGridPaging 的摘要描述。
/// </summary>
public class DataGridPaging : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid MyDataGrid;
protected System.Web.UI.WebControls.Label lblPageCount;
protected System.Web.UI.WebControls.Label lblCurrentIndex;
protected System.Web.UI.WebControls.LinkButton btnFirst;
protected System.Web.UI.WebControls.LinkButton btnPrev;
protected System.Web.UI.WebControls.LinkButton btnNext;
protected System.Web.UI.WebControls.LinkButton btnLast;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label lblRecords;
private OleDbConnection cn = new OleDbConnection();
private void Page_Load(object sender, System.EventArgs e)
{
// 在這裡放置使用者程式碼以初始化網頁
btnFirst.Text = "最首頁";
btnPrev.Text = "前一頁";
btnNext.Text = "下一頁";
btnLast.Text = "最後頁";
Button1.Text = "跳轉";
OpenDatabase();
BindGrid();
if(!Page.IsPostBack)
{
TextBox1.Text="1";
btnFirst.Enabled=false;
btnPrev.Enabled=false;
if(MyDataGrid.PageCount<=1)
{
btnFirst.Enabled=false;
btnPrev.Enabled=false;
btnNext.Enabled=false;
btnLast.Enabled=false;
}
}
}
private void OpenDatabase()
{
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("sample.mdb");
cn.Open();
}
private void ShowStats()
{
lblRecords.Text = "總共 " + ViewState["count"].ToString() + " 筆資料";
lblCurrentIndex.Text = "第 " + (MyDataGrid.CurrentPageIndex + 1).ToString() + " 頁";
lblPageCount.Text = "總共 " + MyDataGrid.PageCount.ToString() + " 頁";
}
public void PagerButtonClick(object sender, EventArgs e)
{
string arg = ((LinkButton)sender).CommandArgument.ToString();
switch(arg)
{
case "first":
MyDataGrid.CurrentPageIndex = 0;
TextBox1.Text="1";
btnFirst.Enabled=false;
btnPrev.Enabled=false;
btnNext.Enabled=true;
btnLast.Enabled=true;
break;
case "next":
if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
{
MyDataGrid.CurrentPageIndex += 1;
TextBox1.Text=System.Convert.ToString(System.Convert.ToInt32(TextBox1.Text) + 1);
if(TextBox1.Text==System.Convert.ToString(MyDataGrid.PageCount))
{
btnFirst.Enabled=true;
btnPrev.Enabled=true;
btnNext.Enabled=false;
btnLast.Enabled=false;
}
else
{
btnFirst.Enabled=true;
btnPrev.Enabled=true;
btnNext.Enabled=true;
btnLast.Enabled=true;
}
}
break;
case "prev":
if (MyDataGrid.CurrentPageIndex > 0)
{
MyDataGrid.CurrentPageIndex -= 1;
TextBox1.Text=System.Convert.ToString(System.Convert.ToInt32(TextBox1.Text) - 1);
if(TextBox1.Text=="1")
{
btnFirst.Enabled=false;
btnPrev.Enabled=false;
btnNext.Enabled=true;
btnLast.Enabled=true;
}
else
{
btnFirst.Enabled=true;
btnPrev.Enabled=true;
btnNext.Enabled=true;
btnLast.Enabled=true;
}
}
break;
case "last":
MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
TextBox1.Text=MyDataGrid.PageCount.ToString().Trim();
btnFirst.Enabled=true;
btnPrev.Enabled=true;
btnNext.Enabled=false;
btnLast.Enabled=false;
break;
// default:
// MyDataGrid.CurrentPageIndex = System.Convert.ToInt32(arg);
// break;
}
BindGrid();
ShowStats();
}
public void BindGrid()
{
OleDbConnection myConnection = cn;
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter("Select Country,Province,City,School,Class from liandong", myConnection);
adapter.Fill(ds, "liandong");
MyDataGrid.DataSource = ds.Tables["liandong"].DefaultView;
ViewState.Add("count",ds.Tables["liandong"].Rows.Count);
MyDataGrid.DataBind();
ShowStats();
}
public void MyDataGrid_Page(object sender, DataGridPageChangedEventArgs e)
{
int startIndex ;
startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize;
MyDataGrid.CurrentPageIndex = e.NewPageIndex;
BindGrid();
ShowStats();
}
#region Web Form 設計工具產生的程式碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 此為 ASP.NET Web Form 設計工具所需的呼叫。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 此為設計工具支援所必須的方法 - 請勿使用程式碼編輯器修改
/// 這個方法的內容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
if(TextBox1.Text.Trim()=="")
{
MyDataGrid.CurrentPageIndex = 0;
TextBox1.Text="1";
}
for(int i=0;i<TextBox1.Text.Length;i++)
{
if(TextBox1.Text[i].ToString().CompareTo("0")<0 ||TextBox1.Text[i].ToString().CompareTo("9")>0)
{
MyDataGrid.CurrentPageIndex = 0;
TextBox1.Text="1";
}
}
if(System.Convert.ToInt32(TextBox1.Text.Trim())<=0)
{
MyDataGrid.CurrentPageIndex = 0;
TextBox1.Text="1";
}
else if(System.Convert.ToInt32(TextBox1.Text.Trim())>=MyDataGrid.PageCount)
{
MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
TextBox1.Text=MyDataGrid.PageCount.ToString().Trim();
}
else
MyDataGrid.CurrentPageIndex = System.Convert.ToInt32(TextBox1.Text.Trim())-1;
BindGrid();
ShowStats();
if(TextBox1.Text=="1")
{
btnFirst.Enabled=false;
btnPrev.Enabled=false;
btnNext.Enabled=true;
btnLast.Enabled=true;
}
else if(TextBox1.Text==System.Convert.ToString(MyDataGrid.PageCount))
{
btnFirst.Enabled=true;
btnPrev.Enabled=true;
btnNext.Enabled=false;
btnLast.Enabled=false;
}
else
{
btnFirst.Enabled=true;
btnPrev.Enabled=true;
btnNext.Enabled=true;
btnLast.Enabled=true;
}
}
}
}
浙公网安备 33010602011771号