数据控件分页显示请教

q704174307 2008-09-26 10:03:28
如何用数据控件既有显示分页,又有每行多条记录的呢?
用DataList不能分页,用gridview不能每行多条记录
大家有什么好方法呢?在线等啊,急
...全文
78 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
q704174307 2008-09-27
  • 打赏
  • 举报
回复
还有没有什么方法呢?
那一季的思念 2008-09-26
  • 打赏
  • 举报
回复
用两个DATAlist控件,嵌套使用就行了!
DATALIST里嵌套一个DATALIST!
这样就可以达到你的效果了!
消失的尘芥 2008-09-26
  • 打赏
  • 举报
回复
学习一下,顶
zorro911 2008-09-26
  • 打赏
  • 举报
回复
<asp:HyperLink ID="first" runat="server" Font-Size="3mm">第一页</asp:HyperLink>
<asp:HyperLink ID="pre" runat="server" Font-Size="3mm">上一页</asp:HyperLink>
<asp:Label ID="lblPage" runat="server"></asp:Label>
<asp:HyperLink ID="next" runat="server" Font-Size="3mm">下一页</asp:HyperLink>
<asp:HyperLink ID="last" runat="server" Font-Size="3mm">最后一页</asp:HyperLink>
<asp:TextBox ID="txtPage" runat="server" BorderStyle="Solid" BorderWidth="1px" Width="30px"></asp:TextBox> 
<asp:Button ID="btnGO" runat="server" Text="GO" OnClick="btnGO_Click" />

PagedDataSource pds = new PagedDataSource();
//分页
private void BDPage()
{
DataTable dt = MessageBoardDA.SelMB();
if (dt.Rows.Count > 0)
{

int pageindex = 0;
int pages = 0;
int nowpage = 0;

pds.DataSource = dt.DefaultView;
pds.AllowPaging = true;
pds.PageSize = 50;

if (Request.QueryString["pageid"] != null && txtPage.Text == "")
{
pageindex = Convert.ToInt32(Request.QueryString["pageid"]);
}
else if (txtPage.Text != "")
{
if (Convert.ToInt32(txtPage.Text) > pds.PageCount)
{
pageindex = pds.PageCount;
txtPage.Text = pds.PageCount.ToString();
}
else
{
pageindex = Convert.ToInt32(txtPage.Text);
}
}
else
{
pageindex = 1;
}

pds.CurrentPageIndex = pageindex - 1;

if (!pds.IsFirstPage)
{
pre.NavigateUrl = Request.CurrentExecutionFilePath + "?pageid=" + Convert.ToInt32(pageindex - 1);
}
if (!pds.IsLastPage)
{
next.NavigateUrl = Request.CurrentExecutionFilePath + "?pageid=" + Convert.ToInt32(pageindex + 1);
}
if (!pds.IsFirstPage)
{
first.NavigateUrl = Request.CurrentExecutionFilePath + "?pageid=1";
}
if (!pds.IsLastPage)
{
last.NavigateUrl = Request.CurrentExecutionFilePath + "?pageid=" + Convert.ToInt32(pds.PageCount);
}

nowpage = pds.CurrentPageIndex + 1;
pages = pds.PageCount;
lblPage.Text = nowpage + "/" + pages;
dltMessage.DataSource = pds;
dltMessage.DataBind();
}
}

protected void btnGO_Click(object sender, EventArgs e)
{
int pageindes = Convert.ToInt32(txtPage.Text);
if (Request.QueryString["pageid"] != null)
{
Request.QueryString["pageid"].Remove(0, Request.QueryString["pageid"].Length);
}
BDPage();
}
shulei521 2008-09-26
  • 打赏
  • 举报
回复
.....
编程有钱人了 2008-09-26
  • 打赏
  • 举报
回复

//ASP.NET2.0中datalist仿百度分页
//注意这个分页在1.0和1.1中无效
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 MySql.Data.MySqlClient;
using System.Data.SqlClient;
using System.IO;
public partial class mysql : System.Web.UI.Page
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["constrmy"]);
int ToatalCountRecord;//总记录数
int PageItem = 4;//每页显示的条数
int CurrentPage = 1;//当前页数
protected void Page_Load(object sender, EventArgs e)
{

if (!this.Page.IsPostBack)
{
if (Request.QueryString["page"] != null)
{
if (!Int32.TryParse(Request.QueryString["page"].ToString(), out CurrentPage))
{
Response.Write("请输入分页参数!");
Response.End();
return;
}
}

this.BuidGrid();
}
}

private void BuidGrid()
{
string s2 = "select * from ts1";
SqlDataAdapter da = new SqlDataAdapter(s2, conn);
DataSet ds = new DataSet();
int startRecord = (CurrentPage - 1) * PageItem;
da.Fill(ds, startRecord, PageItem, "a");
this.DataList1.DataSource = ds.Tables["a"].DefaultView;
this.DataList1.DataBind();
SqlCommand comm = new SqlCommand("select count(*) from ts1", conn);
conn.Open();
ToatalCountRecord = Convert.ToInt32(comm.ExecuteScalar());
conn.Close();
BuildPages();
}
private void BuildPages()
{
int Step = 5;//偏移量
int LeftNum = 0;//做界限
int RightNum = 0;//右界限
string PageUrl = Request.FilePath;
int PageCount = (int)Math.Ceiling((double)(ToatalCountRecord) / PageItem);
if (CurrentPage - Step < 1)
{
LeftNum = 1;
}
else
{
LeftNum = CurrentPage - Step;
}
if (CurrentPage + Step > PageCount)
{
RightNum = PageCount;
}
else
{
RightNum = CurrentPage + Step;
}
string OutPut = "";
if (CurrentPage > 1)
{
OutPut += " <a href='" + PageUrl + "?page=" + (CurrentPage - 1) + "'>" + "上一页" + " </a>";
}
for (int i = LeftNum; i <= RightNum; i++)
{
if (i == CurrentPage)
{
OutPut += " <font color=red>" + " " +"["+i.ToString() +"]"+ "" + " </font>";
}
else
{
OutPut += " <a href='" + PageUrl + "?page=" + i.ToString() + "'>" + " " +"["+ i.ToString() +"]"+ " " + " </a>";
}
}
if (CurrentPage < PageCount)
{
OutPut += " <a href='" + PageUrl + "?page=" + (CurrentPage + 1) + "'>" + "下一页" + " </a>";
}
this.PageInfo.InnerHtml = OutPut;
}

}
//
//需要在前台添加一个 <div id="PageInfo" runat="server" >
q704174307 2008-09-26
  • 打赏
  • 举报
回复
我再顶,帮帮忙啊
q704174307 2008-09-26
  • 打赏
  • 举报
回复
顶上去
q704174307 2008-09-26
  • 打赏
  • 举报
回复
可是我想分页的啊,下面要显示页码什么的,datallist没办法啊。
谁能帮帮我啊

62,072

社区成员

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

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

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

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