DataList分页

在asp.net三层框架里面怎么实现datalist分页,谁有代码发个我要简单的例子灵符注释没有注释不给分还有就是怎么在前台页面上调用存储过程用什么控件好... 在asp.net 三层框架里面 怎么实现 datalist分页, 谁有代码发个 我要简单的 例子 灵符注释 没有注释不给分
还有就是怎么在前台页面上调用存储过程 用什么控件好
展开
 我来答
qijinwen_06
2009-07-01 · TA获得超过185个赞
知道答主
回答量:22
采纳率:0%
帮助的人:17.3万
展开全部
private void indexListBind()
{
try
{
string parID = Request.QueryString["id"].ToString();
int curPage = Convert.ToInt32(this.lb_pageIndex.Text) - 1;//获取当前页码,我用的是一个lable.当了中间变量
con = Admin_DB.getConn();
con.Open();
DataSet ds = new DataSet();
string Path = "~";
OleDbDataAdapter sda = new OleDbDataAdapter("select ID,'" + Path + "'+imagePath as imagePath,introduce from D_Picture where parID=@parID", con);
sda.SelectCommand.Parameters.Add(new OleDbParameter("@parID", parID));
sda.Fill(ds, "index");
System.Web.UI.WebControls.PagedDataSource ps = new PagedDataSource();//实例化分页数据源
ps.DataSource = ds.Tables["index"].DefaultView;//将要绑定在datalist上的datatable给分页数据源
ps.AllowPaging = true;
ps.PageSize = 8;//每页显示几条记录
ps.CurrentPageIndex = curPage;//设置当前页的索引(当前页码减1就是)
this.btn_up.Enabled = true;
this.btn_next.Enabled = true;
this.btn_frist.Enabled = true;
this.btn_end.Enabled = true;
endPage = ps.PageCount;
if (curPage == 0)//当是第一页是.上一页和首页的按钮不可用
{
this.btn_up.Enabled = false;
this.btn_frist.Enabled = false;
}
if (curPage == ps.PageCount - 1)//当是最后一页时下一页和最后一页的按钮不可用
{
this.btn_next.Enabled = false;
this.btn_end.Enabled = false;
}
this.indexList.DataSource = ps;
this.indexList.DataKeyField = "ID";
this.indexList.DataBind();
con.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

}
protected void btn_frist_Click(object sender, EventArgs e)
{
this.lb_pageIndex.Text = "1";
this.indexListBind();
}
protected void btn_up_Click(object sender, EventArgs e)
{
int page = int.Parse(this.lb_pageIndex.Text) - 1;
this.lb_pageIndex.Text = page.ToString();
this.indexListBind();
}
protected void btn_next_Click(object sender, EventArgs e)
{
int page = int.Parse(this.lb_pageIndex.Text) + 1;
this.lb_pageIndex.Text = page.ToString();
this.indexListBind();
}
protected void btn_end_Click(object sender, EventArgs e)
{
this.lb_pageIndex.Text = endPage.ToString();
this.indexListBind();
}
lxrenwei
2009-07-01 · TA获得超过217个赞
知道小有建树答主
回答量:366
采纳率:0%
帮助的人:181万
展开全部
1使用SQL语句
我先说下原理。

假如我们每10条显示 显示第2行的数据
使用TOP语句和子查询 首先依据排序条件查询前10条 然后查询不包含前10条记录中的信息的前10条。。。。。不知道听懂了没

写个SQL语句你看看吧
假设 显示的条数为xxx,要显示第几页yyy。
?表中要有个能用于排序的,最好有个主键标识列

select top xxx *from 表 where ? not in (select top xxx*(yyy - 1) ? from 表 order by 1)order by 1

你要做的就是传这俩参数构建 SQL语句。(最好写存储过程)

2基于 PagedDateSource类

要将数据源和当前页面数赋值给 PagedDataSource
XXX()方法自己写哦

private void FenYe()
{
PagedDateSource pds = new PagedDateSource();
//指定数据源为XXX返回的数据集合
pds.DataSource = XXX();
//是否启用自动分页
pds.AllowPaging = true;
//每页的记录数为4
pds.PageSize = 4;
//当前页为
pds.CurrentPageIndex = Pager;
//用于显示信息
“第 ”+(pds。CurrentPageIndex + 1)。ToString()+“ 页 共 ”+ pds。PageCount。ToString()+“ 页”;

DataList1。DataSource = pds;
DataList1。DataBind();
}

呵呵在有更好的方法告诉我。。。。。。。

SQL语句返回数据量少 编写相对难点
PagedDateSource使用方便可以一下读取所数据,数据量大了。。。。。
根据你条件使用吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
庹茜危高达
2019-02-19 · TA获得超过3737个赞
知道大有可为答主
回答量:3112
采纳率:34%
帮助的人:202万
展开全部
//创建分页对象
PagedDataSource
page
=
new
PagedDataSource();
//设置page的数据源
page.DataSource
=
goodsTable.DefaultView;
//允许分页
page.AllowPaging
=
true;
//设置每页的记录数
page.PageSize
=
5;
//保存当前页的变量
int
intCur;
//是否有转换页面的请求
if
(Request.QueryString["page"]
!=
null)
intCur
=
Convert.ToInt32(Request.QueryString["page"]);
else
intCur
=
1;
//设置当前页的索引
page.CurrentPageIndex
=
intCur
-
1;
//数据的总页数
int
totalPage
=
page.PageCount;
//数据的总条数
int
tNum
=
page.DataSourceCount;
//每一页所使用的数据项数
int
eachPage
=
page.Count;
//显示记录
lblCurPage.Text
=
"第
"
+
page.ToString()
+
"
/
"
+
totalPage.ToString()
+
"页";
lblTnum.Text
=
"共:"
+
tNum.ToString()
+
"条记录";
lblEachPage.Text
=
"每页有:"
+
eachPage.ToString()
+
"条记录";
//如果不是第一页,改变当前页,并转向到第一页
if
(page.CurrentPageIndex
!=
0)
lnkFirst.NavigateUrl
=
Request.CurrentExecutionFilePath
+
"?page="
+
Convert.ToString(1);
//如果不是最后一页,改变当前页,并转向到最后一页
if
(page.CurrentPageIndex
!=
totalPage
-
1)
lnkLast.NavigateUrl
=
Request.CurrentExecutionFilePath
+
"?page="
+
Convert.ToString(totalPage);
//如果不是第一页,改变当前页,并重新发出请求
if
(!page.IsFirstPage)
lnkPrev.NavigateUrl
=
Request.CurrentExecutionFilePath
+
"?page="
+
Convert.ToString(intCur
-
1);
//如果不是最后一页,改变当前页,并重新发出请求
if
(!page.IsLastPage)
lnkNext.NavigateUrl
=
Request.CurrentExecutionFilePath
+
"?page="
+
Convert.ToString(intCur
+
1);
//设置repShopInfo的数据源
repShopInfoList.DataSource
=
page;
//实现绑定
repShopInfoList.DataBind();
goodsTable.Dispose();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FashionTrailblazer
2020-02-24 · TA获得超过3769个赞
知道大有可为答主
回答量:3147
采纳率:29%
帮助的人:167万
展开全部
绑定在分页的
:
PagedDataSource
Pds
=
new
PagedDataSource();
//
设置允许分页
Pds.AllowPaging
=
true;
Pds.DataSource
=
newsxBLL.AllNewsx(0);
//把处理后的数据赋给分页类中
datalist1.DataSource
=
Pds;
datalist1.DataBind();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
美人肠断翠烟楼
2009-07-01 · 超过17用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:51.5万
展开全部
有分页控件 AspNetPager 你可找资料看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式