前一篇文章我已经写了一个关于Repeater控件绑定数据,今天是基于这基础之上的,也就是按昨天的例子补充一点内容! 唉!怎么感觉自己天天在学控件,还是在原来的地方呢?没努力啊!!!!!! 还有啊,太笨了,这么慢我是一天天在浪费生命啊!
这是一个已经绑定好的Repeater,:
_------------------------------------------------------------------------------------------------------------------
还不知道这样使用Repeater绑定的朋友可以看我上一篇文章,^_^呵呵!我也是刚会的哦!
下面我就要在页面上加一些控件!
现在想想怎么实现分页呢>?Repeater控件是不能分页的,必须调用一个类. PagedDataSource,它位于using System.Web.UI.WebControls;是datalist封装的,反正它们是兄弟吗?(我是这么认为的),就可以调用它了,实现与兄弟同样的功能.
这是代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label1.Text = "1"; //第一次加载的时候是不是!啊
dataBindToRepeater();//要进行绑定吧!就该都知道吧!我这么笨都知道了,何况聪明的你呢?
}
}
private void dataBindToRepeater()
{
int curPage = Convert.ToInt32 (Label1.Text);
ds = data.GetDataSet("select * from authors", "authors");//这是类中的一个静态方法,下面我会给出,静态方法不需要实例化,直接调用,好方便啊!
PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables["authors"].DefaultView;
ps.AllowPaging = true;//允话分页
ps.PageSize = 5;
ps.CurrentPageIndex = curPage - 1;//CurrentPageIndex 是当前页,,而curPage 是显示页,当前面是从略开始的,所以记得要减一!!
prebtn.Enabled = true;//首先设置都能用,下面接着判断
nextbtn.Enabled = true;
if (curPage == 1)//当为第一页的时候,是不是这个pretn要不能用,同理下面
prebtn.Enabled = false;
if (curPage == ps.PageCount)
nextbtn.Enabled = false;
Label2.Text = Convert.ToString(ps.PageCount );//总页数
Repeater1.DataSource = ps;
Repeater1.DataBind();
}
protected void prebtn_Click(object sender, EventArgs e)//当单击首页的时候
{
Label1.Text = Convert .ToString ((Convert.ToInt32(Label1.Text) - 1));//上一页,所以小孩都知道 4的前面是3
dataBindToRepeater();
}
protected void nextbtn_Click(object sender, EventArgs e)
{
Label1.Text = Convert .ToString ((Convert.ToInt32(Label1.Text) + 1));
dataBindToRepeater();
}
protected void Button3_Click(object sender, EventArgs e)//末页
{
Label1.Text = Label2.Text;//当前页就等于总共页
nextbtn.Enabled = false;
dataBindToRepeater();
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "1";
prebtn.Enabled = false;
dataBindToRepeater();
}
}
类中的代码
public static DataSet GetDataSet(string sql,string tablename)
{
SqlConnection con = new SqlConnection("Data Source=PKO5GJ0CYL9DIS9;Initial Catalog=pubs;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adpt.Fill(ds,tablename);
con.Close();
con.Dispose();
return ds;
}前一篇有介绍
运行如下: