之前文章里面的分页方法只能"上一页","下一页"的分页,如果里面的页码达到了2位数以上,相信这种方法会让大家抓狂....
aspnetpager提供了有效的分页方式,可以在可视化的环境中,设置分页属性.aspnetpager需要绑定数据控件才能有效分页.可是官方提供的绑定方式是通过存储过程来实现,这个方法又要创建一个存储过程,对于维护有一定影响,如何通过不改动数据库来实现呢?这个问题困扰了我3天....(抓狂),有很多人是写一个数据库操作的类,把aspnetpager声明成变量写进去,或者有些是没有类的,写了一堆sqlconnction,sqlcommand.....,问题没解决,倒把我先看晕了....
后来,我看了一个和gridview的绑定,终于弄清楚了,天...
这是通过DataTable DataView PagedDataSource来实现的.
代码:
private void DataList1()
{
string select_sql = "select row_number() over (order by a.id) AS row_number,* from BBSComments a left join BBS b on b.Id=a.Mid left join UserInfo c on a.Author=c.Id where b.Id = " + Request.QueryString["Id"].ToString() + " order by b.Id asc";
DataTable dt = DacTools.GetDataSet(select_sql);//DacTools是一个类
DataView dv = dt.DefaultView;//根据datatable获取数据源
PagedDataSource pds = new PagedDataSource();//分页数据源.
AspNetPager1.RecordCount = dv.Count;//DataView的Count属性,AspNetPager的RecordCount属性.
pds.DataSource = dv;//分页数据源以DataView为数据源.
pds.AllowPaging = true;//启用分页.
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;//当前页索引.
pds.PageSize = AspNetPager1.PageSize;//每页要显示的记录条数.
DataList1.DataSource = pds;
DataList1.DataBind();
}
PageChanged事件:
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
DataList1_Bind();
}
在使用AspNetPager时别忘了添加onpagechanged="AspNetPager1_PageChanged"事件.
aspnetpager提供了有效的分页方式,可以在可视化的环境中,设置分页属性.aspnetpager需要绑定数据控件才能有效分页.可是官方提供的绑定方式是通过存储过程来实现,这个方法又要创建一个存储过程,对于维护有一定影响,如何通过不改动数据库来实现呢?这个问题困扰了我3天....(抓狂),有很多人是写一个数据库操作的类,把aspnetpager声明成变量写进去,或者有些是没有类的,写了一堆sqlconnction,sqlcommand.....,问题没解决,倒把我先看晕了....
后来,我看了一个和gridview的绑定,终于弄清楚了,天...
这是通过DataTable DataView PagedDataSource来实现的.
代码:
private void DataList1()
{
string select_sql = "select row_number() over (order by a.id) AS row_number,* from BBSComments a left join BBS b on b.Id=a.Mid left join UserInfo c on a.Author=c.Id where b.Id = " + Request.QueryString["Id"].ToString() + " order by b.Id asc";
DataTable dt = DacTools.GetDataSet(select_sql);//DacTools是一个类
DataView dv = dt.DefaultView;//根据datatable获取数据源
PagedDataSource pds = new PagedDataSource();//分页数据源.
AspNetPager1.RecordCount = dv.Count;//DataView的Count属性,AspNetPager的RecordCount属性.
pds.DataSource = dv;//分页数据源以DataView为数据源.
pds.AllowPaging = true;//启用分页.
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;//当前页索引.
pds.PageSize = AspNetPager1.PageSize;//每页要显示的记录条数.
DataList1.DataSource = pds;
DataList1.DataBind();
}
PageChanged事件:
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
DataList1_Bind();
}
在使用AspNetPager时别忘了添加onpagechanged="AspNetPager1_PageChanged"事件.