ASP.NET技巧:做个DataList可分页的数据源
这个数据源,分两部分,一是从数据类中调出数据,然后在本数据源中对分页参数以及页面分页辅助控件进行操作!在前面有三个控件控制翻页,一个下拉列表,两个linkbutton!
下面 fill() 方法调用很简单,在页面中要重新绑定的地方 写上 fill() 就可以了,呵呵!但是一定要写哦,例如翻页动作执行后!
下面是db类中的ds方法
public static datatable ds(string que)
{//返回一个装载了sql制定留言的数据表,
oledbconnection con = odb.con();
oledbdataadapter oda = new oledbdataadapter();
oda.selectcommand=new oledbcommand(que,con);
dataset ds = new dataset();
oda.fill(ds,"thc");
return ds.tables["thc"];
con.close();
}下面方法使用的数据源就是上面的这个
private void fill()
{//做的一个方法,因为页内将有多次的绑定
//这里设置一个隐藏的label,用与储存当前的页索引
int cup = convert.toint32(pagelbl.text);
pageddatasource ps = new pageddatasource();//new一个分页数据源
ps.datasource = odb.ds("select * from guest order by id desc").defaultview;//送一个sql语句进去,确定该数据源的数据源,有点绕吧,呵呵
ps.allowpaging = true;//允许分页
ps.pagesize = 2;//设置页的数量
ps.currentpageindex = cup-1;
if (!ispostback)
{//判断页面是否第一次载入
for (int i = 1; i <= ps.pagecount; i++)
{//循环出页码
pageddl.items.add(i.tostring());
}
}
//下面主要是控制上下翻页按纽是否起用
pageup.enabled = true;
pagedown.enabled = true;
if (ps.isfirstpage)
{//如果是最前页,上页按纽不可用
pageup.enabled = false;
}
if (ps.islastpage)
{//如果是最后页,下页按纽不可用
pagedown.enabled = false;
}
//设置页码下拉菜单当前选中的值
pageddl.selecteditem.text = cup.tostring();
//终于可以绑定给datalist了
datalist1.datasource = ps;
datalist1.datakeyfield = "id";
datalist1.databind();
}
再下面是翻页事件的处理
protected void pageddl_selectedindexchanged(object sender, eventargs e)
{//页码下拉菜单事件
pagelbl.text = pageddl.selecteditem.text.tostring();
fill();
}
protected void pagedown_click(object sender, eventargs e)
{//下页事件
pagelbl.text = convert.tostring(convert.toint32(pagelbl.text)+1);
fill();
}
protected void pageup_click(object sender, eventargs e)
{//上页事件
pagelbl.text = convert.tostring(convert.toint32(pagelbl.text)-1);
fill();
}
上一篇: 元宵节吃什么健康 推荐五款家常菜