Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished 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.comthis.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" %>
赞