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

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航