当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET技巧:做个DataList可分页的数据源

ASP.NET
GridView添加删除按钮终极办法
AjaxPro让.NET的AjaxPro变得简单
c# 实现Word联接Excel的MailMerge功能
解开Ajax技术中的达芬奇密码
专家讲解用.NET编写串口程序的一点心得
利用AJAX和ASP.NET实现简单聊天室
如何快速捕获.NET代码中隐藏的BUG
动态网页原理/.net面面观
从N层到.NET详细剖析原理(2)
从N层到.NET详细剖析原理(1)
ASP.NET效率陷阱之——Attributes
在ASP.NET 2.0中建立站点导航层次(5)
在ASP.NET 2.0中建立站点导航层次(4)
在ASP.NET 2.0中建立站点导航层次(3)
在ASP.NET 2.0中建立站点导航层次(2)
在ASP.NET 2.0中建立站点导航层次(1)
动态网站Web开发PHP、ASP还是ASP.NET(2)
动态网站Web开发PHP、ASP还是ASP.NET(1)
让Apache支持ASP.NET-Apache,ASP.NET
.Net下的数据备份和还原

ASP.NET技巧:做个DataList可分页的数据源


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 59 ::
收藏到网摘: n/a

  这个数据源,分两部分,一是从数据类中调出数据,然后在本数据源中对分页参数以及页面分页辅助控件进行操作!在前面有三个控件控制翻页,一个下拉列表,两个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();
}