林婉馨的大学生活:.net(c#)b/s中的datagrid和datalist哪个有分页功能?
来源:百度文库 编辑:高校问答 时间:2024/04/28 17:28:40
//以下是datagrid分页
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
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 dgOrdl
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
this.DataGrid1.AllowPaging=true;//启用分页
this.DataGrid1.PageSize=5;//每页的个数
this.DataGrid1.PagerStyle.NextPageText="下一页";
this.DataGrid1.PagerStyle.PrevPageText="上一页";//上下页的导航文本
//绑定数据
BindDataToDataGrid();
}
}
private void BindDataToDataGrid()
{
//初始化数据集
System.Data.SqlClient.SqlConnection con=new System.Data.SqlClient.SqlConnection("server=.;database=northwind;integrated security=sspi");
con.Open();
System.Data.SqlClient.SqlDataAdapter sdap=new System.Data.SqlClient.SqlDataAdapter("select customerID,companyName from Customers",con);
DataSet ds=new DataSet("myds");
sdap.Fill(ds,"Employees");
//绑定数据
this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();
con.Close();
}
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//指定新的页索引
this.DataGrid1.CurrentPageIndex=e.NewPageIndex;
//重新绑定数据
this.BindDataToDataGrid();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
//datalist没有自带的分页功能,这里是借助PageDataSource进行分页
//以下是datalist的分页代码
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
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 dgOrdl
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btnPrev;
protected System.Web.UI.WebControls.Button btnNext;
protected System.Web.UI.WebControls.Label lblMsg;
protected System.Web.UI.WebControls.Label lblIndex;
protected System.Web.UI.WebControls.DataList DataList1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
BindDataToDataList();
}
}
private void BindDataToDataList()
{
int index=System.Convert.ToInt32(this.lblIndex.Text);//当前页码
//初始化数据集
System.Data.SqlClient.SqlConnection con=new System.Data.SqlClient.SqlConnection("server=.;database=northwind;integrated security=sspi");
con.Open();
System.Data.SqlClient.SqlDataAdapter sdap=new System.Data.SqlClient.SqlDataAdapter("select customerID,companyName from Customers",con);
DataSet ds=new DataSet("myds");
sdap.Fill(ds,"Employees");
//绑定数据
System.Web.UI.WebControls.PagedDataSource ps=new PagedDataSource();
ps.DataSource=ds.Tables["Employees"].DefaultView;
ps.AllowPaging=true;
ps.PageSize=5;
ps.CurrentPageIndex=index-1;//设置新的索引
//索引按钮的状态
this.btnNext.Enabled=true;
this.btnPrev.Enabled=true;
if(index==1)
{
this.btnPrev.Enabled=false;
}
else if(index==ps.Count)
{
this.btnNext.Enabled=false;
}
//绑定数据
this.DataList1.DataSource=ps;
this.DataList1.DataBind();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click);
this.btnNext.Click += new System.EventHandler(this.btnNext_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void btnNext_Click(object sender, System.EventArgs e)
{
this.lblIndex.Text=System.Convert.ToString(System.Convert.ToInt32(this.lblIndex.Text)+1);//下一页
//重新绑定数据
BindDataToDataList();
}
private void btnPrev_Click(object sender, System.EventArgs e)
{
this.lblIndex.Text=System.Convert.ToString(System.Convert.ToInt32(this.lblIndex.Text)-1);//上一页
//重新绑定数据
BindDataToDataList();
}
}
}
首先 两个控件都可以做分页.
dataGrid 是自带的分页控件.但不好用.
dataList 可以使用用户自定义控件来作分页当然 dataGrid 也可以.
Datagrid
上网搜就得了,一大堆
都可以做分页哈
dataGrid没挑战哈
dataList可以自己设计
代码懒得写