asp.net 分页问题

lookauto 2009-04-27 03:19:52

foreach (DataRow item in dtItem.Rows)
{
this.tbodyList.InnerHtml += "<tr><td><a target='_blank' href='/Products/AModel.aspx?id=" + item["Id"] + "'>" + item["Name"] + "</a></td><td>" + item["Pictures"] + "</td><td>" + item["Description"] + "</td></tr>";
}



这是我在页面中获取数据库中的数据显示到页面上,因为显示的数据太多,我要实现把数据分页显示, 数据还是以这种方式显示, 应该怎么处理!麻烦大家给我一个思路或者片段代码! 谢谢!
...全文
84 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
一方晴空 2009-04-27
  • 打赏
  • 举报
回复
var count = 0;
var maxPageSize = 1;
var page = 1;
var url = null;

//获得总记录数
function getCount(){
var payNumber = document.getElementById("payNumber").value;
var payName = document.getElementById("payName").value;
var bTime = document.getElementById("beginTime").value;
var eTime = document.getElementById("endTime").value;
var postStr = e+"/salarySdd.do?method=ssddCount&payNumber="+payNumber+"&payName="+payName+"&beginTime="+bTime+"&endTime="+eTime+"&page="+page;
//通过POST请求方法,将请求封装在URL中
xmlHttp.open("POST",postStr,true);
//设置服务器响应的处理方法
xmlHttp.onreadystatechange = shouCount;
//发送请求
xmlHttp.send(postStr);
//不提交
return false;
}

//getCount函数的回调函数
function shouCount(){
if(xmlHttp.readyState == 4){
var response = xmlHttp.responseText;
if(response != "false"){
count = response;
if(count % 7 == 0){
maxPageSize = (count / 7);
}else{
maxPageSize = (count / 7 )+ 1;
}
maxPageSize=parseInt(maxPageSize);
//document.getElementById("cont_Review_size").innerHTML = response;
}else{
//document.getElementById("cont_Review_size_message").innerHTML = "尚未有用户发表评论!";
}
}
}

//下一页
function next(){
if((page+1) > maxPageSize)
page = maxPageSize;
desire((page+1));
}

//上一页
function previous(){
page =page -1;
if(page <= 0)
page = 1;
desire(page);
}
//第一页
function first(){
desire(1);
}

//最后一页
function last(){
//计算最大页数(最后一页)
if(count % 5 == 0){
maxPageSize = (count / 7);
}else{
maxPageSize = (count / 7 )+ 1;
}
maxPageSize=parseInt(maxPageSize);
//每页显示7条记录
page =maxPageSize;
desire(maxPageSize);
}

Ajax分页,可以试试的,很好用
雷米 2009-04-27
  • 打赏
  • 举报
回复
.Net 分页用string 类来传递就可以了~ 很容易理解
luckyboy101 2009-04-27
  • 打赏
  • 举报
回复
自己写,用自带的,用别人的都可以
zftow110 2009-04-27
  • 打赏
  • 举报
回复
分页单独写肯定是累人了,分页控件,要不自己写个函数输出分页字符串也不错
hjshanghai 2009-04-27
  • 打赏
  • 举报
回复
写一个自定义分页控件
guoziwumingzi 2009-04-27
  • 打赏
  • 举报
回复
我是直接用控件分页的,学习!!!!!!!!!!!!
编程有钱人了 2009-04-27
  • 打赏
  • 举报
回复
1.吴起娃的分页控件,上他的控件 www.51aspx.com 也有他的源码 上面有怎么分页的代码
2.孟老师的

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" >


arjsyy 2009-04-27
  • 打赏
  • 举报
回复
可以用数据库控件,然后用存储过程分页,效率很快的
pgameli 2009-04-27
  • 打赏
  • 举报
回复
数据太多为什么不用数据控件

62,074

社区成员

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

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

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

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