namespace XXXX.UserControl
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
/// <summary>
/// pagemanager 的摘要说明。
/// </summary>
public class pagemanager : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.Label lbl_pagecount;
protected System.Web.UI.WebControls.Label lbl_currentpage;
protected System.Web.UI.WebControls.Label lbl_num;
protected System.Web.UI.WebControls.DropDownList DropDownList2;
protected System.Web.UI.WebControls.LinkButton LinkButton3;
protected System.Web.UI.WebControls.LinkButton LinkButton4;
protected System.Web.UI.WebControls.LinkButton LinkButton2;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
DataGrid myGrid;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
myGrid=(DataGrid)Page.FindControl("myDataGrid");
if(myGrid==null)
{
myGrid=(DataGrid)Page.FindControl("myGrid");
}
if(!IsPostBack)
{
this.BindPag();
this.ShowStats();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DropDownList2.SelectedIndexChanged += new System.EventHandler (this.DropDownList2_SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
#region 绑定到DataGrid控件
private void DataBindToGrid()
{
Label mysqlLb=(Label)Page.FindControl("lbl_sql");
DataSet ds=new DataSet();
string temp=mysqlLb.Text;
ds=GetDataSet(temp[1].ToString(),temp[2].ToString());//获得dataset,需要自己写该函数或类
myGrid.DataSource=ds.Tables[0].DefaultView;
myGrid.DataBind();
this.BindPag();
this.ShowStats();
}
#endregion
#region 分页BindPag()
private void BindPag()
{
//使DropDownList2的选择与DataGrid的页码同步,并重新填写DropDownList2的选项
DropDownList2.Items.Clear();
System.Web.UI.WebControls.ListItem li=new ListItem();
for(int i=1;i<=this.myGrid.PageCount;i++)
{
li.Text =i.ToString();
li.Value=i.ToString();
//重新填写DropDownList2的选项
this.DropDownList2.Items.Add(i.ToString());
if(i==myGrid.CurrentPageIndex+1)
{
//使DropDownList2的选择与DataGrid的页码同步
DropDownList2.SelectedIndex=DropDownList2.Items.IndexOf(DropDownList2.Items.FindByValue(i.ToString()));
}
}
}
#endregion
#region 显示页控制按钮状态ShowStats()
private void ShowStats()
{
lbl_currentpage.Text = "第 " + (myGrid.CurrentPageIndex + 1).ToString() + " 页";
lbl_pagecount.Text = "总共 " + myGrid.PageCount.ToString() + " 页";
lbl_num.Text=myGrid.PageSize .ToString() +"条/页";
if (myGrid.CurrentPageIndex==0)
{
//如果选中的是首页
this.LinkButton1.Enabled =false;
this.LinkButton2.Enabled =false;
}
else
{
//不是首页
this.LinkButton1.Enabled =true;
this.LinkButton2.Enabled =true;
}
if (myGrid.CurrentPageIndex==myGrid.PageCount-1)
{
//如果选中的是尾页
this.LinkButton3.Enabled=false;
this.LinkButton4.Enabled =false;
}
else
{
//不是尾页
this.LinkButton3.Enabled =true;
this.LinkButton4.Enabled =true;
}
}
#endregion
#region 页选择 DropDownList2_SelectedIndexChanged
private void DropDownList2_SelectedIndexChanged(object sender, System.EventArgs e)
{
//DropDownList2变化使datagrid显示页同步
myGrid.CurrentPageIndex = System.Convert.ToInt32(DropDownList2.SelectedItem.Value)-1;
DataBindToGrid() ;
ShowStats();
}
#endregion
#region 页面转换按钮响应函数PagerButtonClick
public void PagerButtonClick(object sender, EventArgs e)
{
string arg = ((LinkButton)sender).CommandArgument.ToString();
switch(arg)
{
case "next":
if (myGrid.CurrentPageIndex <( myGrid.PageCount - 1))
{
myGrid.CurrentPageIndex += 1;
}
break;
case "prev":
if (myGrid.CurrentPageIndex > 0)
{
myGrid.CurrentPageIndex -= 1;
}
break;
case "last":
myGrid.CurrentPageIndex = (myGrid.PageCount - 1);
break;
default:
myGrid.CurrentPageIndex = System.Convert.ToInt32(arg);
break;
}
DataBindToGrid();
ShowStats();
}
#endregion
}
}
说明:在需要放置该控件的页面上,需要放置一个lbl_sql标签,用于存放sql语句(查询数据用)。