Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 1:39:51
Repeater控件实例应用

Repeater控件实例应用

Repeater控件实例应用

在开发网站时,常常需要在页面中比较全面的显示一些信息,但如果要显示的信息记录较多,用一个页面显示所有记录,可能给用户的浏览带来不便。为了解决这个问题,开发人员可以使用分页技术来限定一个页面中显示的记录数。本实例主要是通过使用Repeater控件的分页技术显示员工信息,实例运行结果如图1所示。



图1 分页显示员工信息

程序开发步骤如下所示。

(1)新建一个网站,将其命名为Ex22_03,默认主页名为Default.aspx。

(2)Default.aspx页面涉及的控件如表1所示。



表1 Default.aspx页面用到的控件

(3)主要程序代码如下。

Default.aspx页面在初始化时,调用自定义方法DBBind,对Repeater控件进行数据绑定并实现分页功能,Default.aspx页Page_Load事件代码如下:

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

DBBind();

}

自定义方法DBBind,主要是用来从数据库中查询出符合指定条件的记录,并绑定到Repeater控件中,然后通过设置PagedDataSource类对象的AllowPaging属性值为True,实现Repeater控件的分页功能。DBBind方法关键代码如下:

public void DBBind()

{

int curpage = Convert.ToInt32(this.labPage.Text);

PagedDataSource ps = new PagedDataSource();

SqlConnection myConn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());

myConn.Open();

string sqlStr = "select * from tb_Employee";

SqlDataAdapter myAdapter = new SqlDataAdapter(sqlStr, myConn);

DataSet ds = new DataSet();

myAdapter.Fill(ds);

ps.DataSource = ds.Tables[0].DefaultView;

ps.AllowPaging = True; //是否可以分页网站源代码

ps.PageSize = 2;//显示的数量

ps.CurrentPageIndex = curpage - 1;//取得当前页的页码

this.lnkbtnUp.Enabled = True;

this.lnkbtnNext.Enabled = True;

this.lnkbtnBack.Enabled = True;

this.lnkbtnOne.Enabled = True;

if (curpage == 1)

{

this.lnkbtnOne.Enabled = False;//不显示第一页按钮

this.lnkbtnUp.Enabled = False;//不显示上一页按钮

}

if (curpage == ps.PageCount)

{

this.lnkbtnNext.Enabled = False;//不显示下一页

this.lnkbtnBack.Enabled = False;//不显示最后一页

}

this.labBackPage.Text = Convert.ToString(ps.PageCount);

this.Repeater1.DataSource = ps;

this.Repeater1.DataBind();

myConn.Close();

}

当用户单击用于操作分页的LinkButton控件时,程序根据当前页码执行指定操作。用于控制分页的LinkButton控件的Click事件代码如下:

//第一页

protected void lnkbtnOne_Click(object sender, EventArgs e)

{//本教程来自:HTTP://www.isstudy.com

this.labPage.Text = "1";

this.DBBind();

}

//上一页

protected void lnkbtnUp_Click(object sender, EventArgs e)

{

this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);

this.DBBind();

}

//下一页

protected void lnkbtnNext_Click(object sender, EventArgs e)

{

this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);

this.DBBind();

}

//最后一页

protected void lnkbtnBack_Click(object sender, EventArgs e)

{

this.labPage.Text = this.labBackPage.Text;

this.DBBind();

}

完整程序代码如下:

★ ★★★★Default.aspx页面设计文件完整程序代码★★★★★

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>







无标题页




















If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759