后台是拼表格的形式在前台读取数据的,怎么实现分页?急啊!在线等!

风流倜傥你水哥 2010-11-16 03:29:08
这是代码
for (int i = 0; i < dt.Rows.Count; i++)
{
returnstring += "<tr>";
returnstring += "<td width=\"50\" height=\"30\" align=\"center\"><img src=\"images/y_89.jpg\" width=\"3\" height=\"3\" /></td>";
returnstring += "<td><span class=\"STYLE21\"><a href=\"ys.aspx?id=" + dt.Rows[i]["PS_ID"] + "\">" + dt.Rows[i]["PS_Title"].ToString() + "</a></span></td>";
returnstring += "<td width=\"150\" align=\"center\"><span class=\"STYLE21\">[" + dt.Rows[i]["PS_Time"].ToString() + "]</span></td>";
returnstring += "</tr>";
returnstring += "<tr><td height=\"1\" colspan=\"3\" align=\"center\"><hr size='1' noshade='noshade' style='border: 1px #888888 dotted;' /></td></tr>";
}
...全文
159 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
细嗅蔷薇 2010-11-16
  • 打赏
  • 举报
回复
从数据库 取的时候分页
一次只取10条
HooverHuang 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 sothat28 的回复:]
这是代码
for (int i = 0; i < dt.Rows.Count; i++)
{
returnstring += "<tr>";
returnstring += "<td width=\"50\" height=\"30\" align=\"center\"><img src=\"image……
[/Quote]

很简单啊,查询的时候分页就好了。
举个例子,第一页拼出来50条数据,当点第二页的时候,
你再查第二页的数据,当然也会执行这个拼表格的方法,拼出来显示的就是第二页的数据。
页码的话,你根据表里面的总记录数,除以每页显示的数据 算出来的那个数字循环递增就好了。
你每次点下一页,重新查下一页的数据,重新拼新的页面。
不知道你明白没有 。。。
给你个分页的存储过程

-- =============================================
-- Author: <hoover.huang>
-- Create date: < 2010-10-28>
-- Description: <查询订单详细信息列表,根据起止时间>
-- =============================================
ALTER PROCEDURE [dbo].[spGetOrderListInfoByTime]

-- Add the parameters for the stored procedure here
@startIndex INT, --起始行数
@endindex INT, --结束行数
--@userEmail nvarchar(100), --用户名
--@prBrand nvarchar(100), --品牌
@beginTime datetime, --起始时间
@endTime datetime --结束时间
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
WITH orderList AS (
SELECT ROW_NUMBER() OVER (ORDER BY ord.ORD_DATE DESC)AS rownum,
--ord.ORD_ID as ordID, --订单主键Id
ord.ORD_NO as OrdNo, --订单号
ord.ORD_DATE as OrdDate, --订单时间
ISNULL(ord.ORG_PROMOTION_CODE,'') as PromotionCode, --促销代码
ISNULL(sta.OST_STATUS,'') as OstStatus, --订单状态
ite.OIT_BRAND AS Brand , --品牌
ite.OIT_NAME AS PName, --产品名称
ite.PRD_ID AS PrDId, --产品编号
ISNULL(ite.OIT_QUANTITY,0.00) AS Quantity, --数量
ISNULL(ite.OIT_UPRICE,0.00) AS Price, --单价
ISNULL(ite.OIT_SUBTOTAL,0.00) AS ProductSubtotal , --小计
ISNULL(ord.ORD_SHIPPING_TOTAL,0) AS ShippingTotal, --运费
(ISNULL(ord.ORD_SUB_TOTAL,0.00) + ISNULL(ord.ORD_SHIPPING_TOTAL,0)) AS SubTotal, --总计
addr.CAD_PROVINCE AS Province, --送货省份
addr.CAD_CITY AS City , --送货城市
PType = CASE ord.ORD_PTYPE WHEN 0 THEN N'货到付款' WHEN 1 THEN N'银联支付' WHEN 2 THEN N'支付宝' ELSE N'货到付款' END,
cu.CU_EMAIL as email --用户名

from Orders ord
left join OrderStatus sta on ord.ORD_ID=sta.ORD_ID
left join OrderItem ite on ord.ORD_ID=ite.ORD_ID
left join OrderAddress addr on ord.CAD_ID=addr.CAD_ID
left join CustUser cu on ord.CU_ID =cu.CU_ID
where
ord.ORD_DATE>=cast(@beginTime as DATETIME) and ord.ORD_DATE<CAST(@endTime as DATETIME)
and charindex('@iplabel.com',Convert(nvarchar(500),cu.CU_EMAIL))=0

)

SELECT * FROM orderlist
WHERE
rownum between @startIndex and @endIndex
--and ordDate>= @beginTime and ordDate<= @endTime
order by ordDate desc ;

END



关键就是

rownum between @startIndex and @endIndex
--and ordDate>= @beginTime and ordDate<= @endTime
order by ordDate desc ;

每次查询 一页里面需要显示的数据

62,271

社区成员

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

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

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

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