请大家帮忙,我可是把所有的money都掏出来拉

gongzheng555 2003-10-15 10:23:30
请问如何实现datalist分页
我现在把两个表里面的内容用datalist显示在页面的表格上拉
但是因为记录太多,我想实现分页显示
该如何实现,最好是能够提供源代码

急用,在线等!
...全文
24 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
meetweb 2003-10-15
  • 打赏
  • 举报
回复
http://www.chinabs.net/aspnet/default.asp?infoid=95
http://aspalliance.com/das/datalistpaging.aspx
acewang 2003-10-15
  • 打赏
  • 举报
回复
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=47DD34FD-ED0B-4455-94E8-CD9F63E19893
triout 2003-10-15
  • 打赏
  • 举报
回复
使用这个方法:

1——
SqlDA=...
2——
DS=...
3——
这里是分页的关键:
获取当前要显示的页码(索引)p和每页的大小ps,SqlDA中总记录数t,然后
SqlDA.Fill(DS,"tblname",(p-1)*ps/*初始记录号*/,(p*ps-1)>t?t:(p*ps-1)/*结束记录号*/)
4——
这步就简单了,把DS绑定到DATALIST就OK了。
rqxiang 2003-10-15
  • 打赏
  • 举报
回复
up
gongzheng555 2003-10-15
  • 打赏
  • 举报
回复
谢谢
rgbcn 2003-10-15
  • 打赏
  • 举报
回复
repeater和datalist控件可以很快的、灵活地在.aspx页面上显示数据,但
它们都没有分页功能;虽然datagrid控件有分页功能,但使用起来却太古板了、灵活性太差了。
很多文章都在讨论repeater、datalist的分页功能的问题,下面我们就用
pagedatasource这个类在repeater中进行分页:
pagedatasource是datagrid中封装的一个类,datagrid就是用这个来实现分页功能的;
我们也可以用这个类在datalist、repeater中进行分页,大家只要看了下面的程序示例
问题就可以解决了。


<%@Import namespace="System.Data"%>
<%@Import namespace="System.Data.SqlClient"%>
<html>
<head>
<title>default</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="C#" runat="server">
public void Page_Load(Object src,EventArgs e)
{SqlConnection cnn=new SqlConnection("server=zzl;uid=sa;pwd=970480;database=zzl");//连接数据库
SqlDataAdapter mycommand=new SqlDataAdapter("select * from start1",cnn);//数据操作,而表start1及其数据自己sqlserver中做
DataSet ds=new DataSet();
mycommand.Fill(ds); //实例dataset对象为ds,并把数据填充到ds上


PagedDataSource pp=new PagedDataSource();//对分页功能的类实例对象
pp.DataSource=ds.Tables[0].DefaultView;//把数据赋予对象pp
pp.AllowPaging=true;//允许进行分页
pp.PageSize=6;//设置每页数据的个数
int cpage;//这个整数用来分析分页页数的
if(Request.QueryString["page"]!=null)//这个判断语句的作用是对cpage进行赋值
cpage=Convert.ToInt32(Request.QueryString["page"]);
else
cpage=1;
pp.CurrentPageIndex=cpage-1;//pp对象的当前引索值,因为引索值是从0开始,cpage从1开始所以要减1
if (!pp.IsFirstPage)//Request.CurrentExecutionFilePath为当前的程序的文件名,直接写也可以
pre.NavigateUrl=Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(cpage-1);

if (!pp.IsLastPage)
next.NavigateUrl=Request.CurrentExecutionFilePath+ "?page=" + Convert.ToString(cpage+1);

repeater1.DataSource=pp;
repeater1.DataBind();}
</script>
</head>
<body>
<table width="100%" border="0">
<tr><TD>  <asp:label id="current" runat="server"/></TD></tr>
<tr><td> <asp:hyperlink id="pre" runat="server"><<</asp:hyperlink>
<asp:hyperlink id="next" runat="server">>></asp:hyperlink></td></tr></table>
<asp:repeater id="repeater1" runat="server">
<itemtemplate>
<table width="100%" border="0">
<tr><td>  <%#DataBinder.Eval(Container.DataItem,"product")%></td></tr>
<tr><td>  </td></tr></table></itemtemplate></asp:repeater>
</body>
</html>


110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧