通过PagedDataSource来实现DataList的分页.但是运行后为什么DataList没有显示数据.

ririu 2009-12-13 09:07:55
我在做DataList的分页功能,通过PagedDataSource来实现DataList的分页.但是运行后为什么DataList没有显示数据.

这是前台代码:

<body style="text-align:center">
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server">
</asp:DataList></div>
<asp:LinkButton ID="lnkbtnFirst" runat="server" OnClick="lnkbtnFirst_Click">首页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnFront" runat="server" OnClick="lnkbtnFront_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="lnkbtnNext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnLast" runat="server" OnClick="lnkbtnLast_Click">尾页</asp:LinkButton> 
当前页码为:<asp:Label ID="labPage" runat="server" Text="1"></asp:Label>
总页码为:
<asp:Label ID="labBackPage" runat="server" Text="Label"></asp:Label><br />
<br />
<br />
 
</form>
</body>



这是后台cs文件的代码:



using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class datalist2_fenye_function : System.Web.UI.Page
{
protected void Bind()
{
//获取当前页
int curpage = Convert.ToInt32(this.labPage.Text);
PagedDataSource ps = new PagedDataSource();
SqlConnection con= new SqlConnection("server=(local);database=studentDB;uid=sa;pwd=");
con.Open();
SqlDataAdapter sda=new SqlDataAdapter("select * from communicationbook",con);
DataSet ds=new DataSet();
sda.Fill(ds,"communicationbook");
//获取数据源
ps.DataSource = ds.Tables["communicationbook"].DefaultView;
ps.AllowPaging = true;
ps.PageSize = 3;
//设置当前页的索引
ps.CurrentPageIndex = curpage - 1;
this.lnkbtnFront.Enabled = true;
this.lnkbtnNext.Enabled = true;
this.lnkbtnLast.Enabled = true;
this.lnkbtnFirst.Enabled = true;
if (curpage == 1)//等于第一页
{
this.lnkbtnFront.Enabled = false;
this.lnkbtnFirst.Enabled = false;
}
if (curpage == ps.PageCount)//等于最后一页
{
this.lnkbtnNext.Enabled = false;
this.lnkbtnLast.Enabled = false;
}
//显示总页数
this.labBackPage.Text = Convert.ToString(ps.PageCount);
this.DataList1.DataSource = ps;
this.DataList1.DataKeyField="id";
DataList1.DataSource = ps;
//我感觉问题就出在前面这几行.大家帮忙看看 因为运行后只显示那些分页的导航的字,分页功能已经实现,可是DataList却没有实现数据的绑定.
DataList1.DataBind();
con.Close();
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}
protected void lnkbtnFirst_Click(object sender, EventArgs e)
{
labPage.Text = "1";
Bind();
}
protected void lnkbtnFront_Click(object sender, EventArgs e)
{
labPage.Text=Convert.ToString(Convert.ToInt32(labPage.Text)-1);
Bind();
}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) + 1);
Bind();
}
protected void lnkbtnLast_Click(object sender, EventArgs e)
{
labPage.Text = labBackPage.Text;
Bind();
}
}

...全文
313 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我也遇到此问题,不过,我的还要加“数字页数”,就是有几页就显示多少数字的超链接,能点击到相应页面
HandsomeYT 2010-08-11
  • 打赏
  • 举报
回复
太感谢了,终于把我的分页给解决了,我查了好几天了。。。
chao0803 2010-03-04
  • 打赏
  • 举报
回复
<body style="text-align: center">
<form id="form2" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "CategoryID")%>
<%#DataBinder.Eval(Container.DataItem,"CategoryName") %>
<%#DataBinder.Eval(Container.DataItem, "Description")%>
<%#DataBinder.Eval(Container.DataItem, "Picture")%>
</ItemTemplate>
</asp:DataList>
<asp:LinkButton ID="lnkbtnFirst" runat="server" OnClick="lnkbtnFirst_Click">首页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnFront" runat="server" OnClick="lnkbtnFront_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="lnkbtnNext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnLast" runat="server" OnClick="lnkbtnLast_Click">尾页</asp:LinkButton> 
当前页码为:<asp:Label ID="labPage" runat="server" Text="1"></asp:Label>
总页码为:
<asp:Label ID="labBackPage" runat="server" Text="Label"></asp:Label><br />
<br />
<br />
 
</div>
</form>
</body>
chao0803 2010-03-03
  • 打赏
  • 举报
回复
//显示总页数
this.labBackPage.Text = Convert.ToString(ps.PageCount);
this.DataList1.DataSource = ps;
this.DataList1.DataKeyField = "CategoryID";
this.DataList1.DataSource = ps;
DataList1.DataBind();
con.Close();
_____***************************************************
搞定啦、、哈哈哈哈。。。
chao0803 2010-03-03
  • 打赏
  • 举报
回复
我的怎么也不显示数据。。。究竟该改那儿?
ririu 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mngzilin 的回复:]
this.DataList1.DataSource = ps;

确保这句是上面的这句,其他的没有问题。我测试过了,分页也没用问题
[/Quote]


this.DataList1.DataSource = ps;
就是这句.呵呵 搞定了 谢谢你了
mngzilin 2009-12-13
  • 打赏
  • 举报
回复
this.DataList1.DataSource = ps;

确保这句是上面的这句,其他的没有问题。我测试过了,分页也没用问题
mngzilin 2009-12-13
  • 打赏
  • 举报
回复
QQ382748635把代码发过来,我看看
ririu 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mngzilin 的回复:]
你的前台没有绑定任何数据,我帮你修改了下:

<asp:DataList ID="DataList1" runat="server">
  <ItemTemplate>
        <label id="Label1"> <%#Eval("你的数据列名") %> </label>//绑定数据
  </ItemTemplate>
</asp:DataList>
[/Quote]

这个在理.呵呵 谢谢了.不过加上去之后,还是有一个问题.就是DataList控件显示数据了,但是跟下面的分页的控制却没有联系起来.我的数据一共有八条.通过分页控制,应该是显示三条一页,一共三页.但是DataList把所有的八条记录都显示出来了.分页的效果没有达到.哪里还应该做些修改吗?

webdiyer 2009-12-13
  • 打赏
  • 举报
回复
你那样写太累了,建议你试试我写的免费分页控件AspNetPager,有完整的示例和帮助文档: http://www.webdiyer.com
mngzilin 2009-12-13
  • 打赏
  • 举报
回复
其他的地方我已经测试过了,没有问题。前台要绑定数据。如果不想绑定的话,你可以用GridView控件,它是自动绑定的
mngzilin 2009-12-13
  • 打赏
  • 举报
回复
你的前台没有绑定任何数据,我帮你修改了下:

<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<label id="Label1"><%#Eval("你的数据列名") %></label>//绑定数据
</ItemTemplate>

</asp:DataList>
wuyq11 2009-12-13
  • 打赏
  • 举报
回复
this.DataList1.DataSource =ps ;

DataSet ds=new DataSet();
PagedDataSource objPage=new PagedDataSource();
objPage.DataSource=ds.Tables["user"].DefaultView;
objPage.AllowPaging=true;
objPage.PageSize=6;
int CurPage;
if(Request.QueryString["Page"]!=null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
objPage.CurrentPageIndex=CurPage-1;
this.lblCurPage.Text="当前页:第"+CurPage.ToString()+"页";
this.DataList1.DataSource=objPage;
this.DataList1.DataBind();


asp.netpager结合PagedDataSource

ririu 2009-12-13
  • 打赏
  • 举报
回复
运行后只显示那些分页的导航的字,分页功能已经实现,可是DataList却没有实现数据的绑定

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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