datalist分页

zhouing00 2010-01-01 03:08:22
我的页面有一个datalist件,数据是通过SqlDataSource这个数据源得到的,现在想对datalist分页,怎么实现?
请详细点...
...全文
218 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhz_dxm 2010-01-03
  • 打赏
  • 举报
回复
分页在什么控件中的代码基本都是一样阿
weiyan0c 2010-01-02
  • 打赏
  • 举报
回复
前不久自己写的一个DATALIST分页的代码
private void Bind()
{
string sql = "select * from Article where ArticleClass='科普知识' order by ArticleSort DESC, ArticleID DESC";
MyDataTable=dbObj.GetDataSet(sql, "CoptListTable");
int curpage =Convert.ToInt32(this.labPage.Text);
PagedDataSource ps = new PagedDataSource();
ps.DataSource = MyDataTable.DefaultView;
ps.AllowPaging = true; //是否可以分页
ps.PageSize = 12; //显示的数量
ps.CurrentPageIndex = curpage - 1;//获取当前页的索引
lnkbtnNext.Enabled = true;
lnkbtnLast.Enabled = true;
lnkbtnFirst.Enabled = true;
lnkbtnUp.Enabled = true;
if (curpage == 1)
{
lnkbtnFirst.Enabled = false;
lnkbtnUp.Enabled = false;
}
if (curpage == ps.PageCount)
{
lnkbtnNext.Enabled = false;
lnkbtnLast.Enabled = false;
}
labTotalPage.Text =Convert.ToString( ps.PageCount);
labTotalArticleNum.Text = Convert.ToString(ps.Count);
CoptDL.DataSource = ps;
CoptDL.DataKeyField = "ArticleID";
CoptDL.DataBind();


}
ICrazyBoy 2010-01-02
  • 打赏
  • 举报
回复
下个 AspNetPager 分页控件 整合下就行了。。。
DataPagerSource这个类来实现
结合两者就能GAME OVER!或者自己写哥SQL的存储过程的 !

jackyuen1 2010-01-02
  • 打赏
  • 举报
回复
ataPagerSource
Adechen 2010-01-02
  • 打赏
  • 举报
回复
DataPagerSource这个类来实现
或者上面有人说的第3方的控件
weifangxiaohuo 2010-01-02
  • 打赏
  • 举报
回复
用.net 自带的分页 效率太低
weifangxiaohuo 2010-01-02
  • 打赏
  • 举报
回复
自己写代码调用分页存储过程就行了
mhl0410 2010-01-02
  • 打赏
  • 举报
回复
AspNetPager 用这个第三方控件挺方便的。
ximengtiankong 2010-01-02
  • 打赏
  • 举报
回复
自己写代码
claymore1114 2010-01-02
  • 打赏
  • 举报
回复
不要用SqlDataSource,不灵活,直接在后台绑定。
vip__888 2010-01-02
  • 打赏
  • 举报
回复
分页功能的原理很简单
一次性读取多少数据
然后在绑定控件就行了
就是读取的时候麻烦点
huxy362428 2010-01-02
  • 打赏
  • 举报
回复
路过
kaerle 2010-01-02
  • 打赏
  • 举报
回复
SqlDataSource数据源方式很少用,几乎没有什么人使用.
一般都是用ObjectDataSource或者链接直接写在后置页面中..
我写了个链接在后置页面中的..你可以看下有需要不.如果还是要SqlDataSource方式.在帮你重写个
kaerle@126.com

页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">

<asp:DataList ID="DataList1" runat="server" Width="100%" >
<ItemTemplate>
<table style="width:100%">
<tr>
<td rowspan="3" style="width: 165px; height: 87px">
<%# Eval("ISBN").ToString() %>
</td>
<td style="font-size:small;color:Red">
<%# Eval("Title") %></a>
</td>
</tr>
<tr>
<td align="left">
<span style="font-size:12px;line-height:20px;"><%# Eval("Author") %></span>
</td>
</tr>
<tr>
<td>
<span style="font-size:12px;line-height:20px;"><%# Eval("ContentDescription").ToString() %>
</span>
</td>
</tr>
<tr>
<td align="right" colspan="2">
<span style="font-size:13px;line-height:20px;font-weight:bold;">¥<%# Eval("UnitPrice") %></span>
</td>
</tr>
</table>
</ItemTemplate>
<SeparatorTemplate>
<hr />
</SeparatorTemplate>
</asp:DataList>

 
<br />
<asp:Label ID="Label1" runat="server" Text="当前页"></asp:Label>
<asp:Label ID="Label2" runat="server" Text="1"></asp:Label>
<asp:Label ID="Label3" runat="server" Text="总页数"></asp:Label>
<asp:Label ID="Label4" runat="server" Text="Label"></asp:Label>

<asp:LinkButton ID="lbtnHomePage" runat="server" OnClick="lbtnHomePage_Click">首页</asp:LinkButton>
<asp:LinkButton ID="lbtnUp" runat="server" OnClick="lbtnUp_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="lbtnDown" runat="server" OnClick="lbtnDown_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="lbtnEnd" runat="server" OnClick="lbtnEnd_Click">末页</asp:LinkButton>

</form>

</body>
</html>
后置页面代码:
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 _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bindData();
}
}
public void bindData()
{
//实例化对象
SqlConnection con = new SqlConnection();
//实例化SqlConnection对象连接数据库字符串
con.ConnectionString = "Data Source=kaerle;Initial Catalog=MyBookShop;Integrated Security=True";
//定义SQL语句
string sql = "select * from Books";
//实例化SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter(sql, con);
//实例化DataSet
DataSet ds = new DataSet();
da.Fill(ds, "Books");

PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables["Books"].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 5;

int currentIndex = Convert.ToInt32(this.Label2.Text) - 1;
pds.CurrentPageIndex = currentIndex;
if (currentIndex == 0)
{
this.lbtnHomePage.Enabled = false;
this.lbtnUp.Enabled = false;
this.lbtnDown.Enabled = true;
this.lbtnEnd.Enabled = true;
}

else if (currentIndex == pds.PageCount - 1)
{
this.lbtnHomePage.Enabled = true;
this.lbtnUp.Enabled = true;
this.lbtnDown.Enabled = false;
this.lbtnEnd.Enabled = false;
}
else
{
this.lbtnHomePage.Enabled = true;
this.lbtnUp.Enabled = true;
this.lbtnDown.Enabled = true;
this.lbtnEnd.Enabled = true;
}
this.Label4.Text = pds.PageCount.ToString();

//绑定DataList控件
DataList1.DataSource = pds;
DataList1.DataBind();

}

protected void lbtnHomePage_Click(object sender, EventArgs e) //首页
{
this.Label2.Text = "1";
bindData();
}
protected void lbtnUp_Click(object sender, EventArgs e) //上一页
{
int temp = Convert.ToInt32(this.Label2.Text) - 1;
this.Label2.Text = temp.ToString();
bindData();
}
protected void lbtnDown_Click(object sender, EventArgs e) //下一页
{
int temp = Convert.ToInt32(this.Label2.Text) + 1;
this.Label2.Text = temp.ToString();
bindData();
}
protected void lbtnEnd_Click(object sender, EventArgs e) //末页
{
this.Label2.Text = this.Label4.Text;
bindData();
}
}
andrewsway 2010-01-01
  • 打赏
  • 举报
回复
AspNetPager
jion_tang88 2010-01-01
  • 打赏
  • 举报
回复
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();
}
jion_tang88 2010-01-01
  • 打赏
  • 举报
回复
DataPagerSource这个类来实现
qianyin123 2010-01-01
  • 打赏
  • 举报
回复
下个 AspNetPager 分页控件 整合下就行了。。。

62,264

社区成员

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

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

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

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