.net中上一篇下一篇的实现

1:sql中新建存储过程(注意跟进自己的表修改表名和排序条件
 
  
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go



-- =============================================
--
Author: 小黑
--
Create date: 2011-2-17
--
Description: 根据ID获取上一页下一页的存储过程
--
=============================================
ALTER PROCEDURE [ dbo ] . [ proc_PrevorNextpro ]
@proid int , -- 表id
@str nvarchar ( 20 ) -- prev 则是上一件 next则是下一件
AS
BEGIN
declare @rowid int
select @rowid = rowid from (
select ROW_NUMBER() over ( order by createdate desc ) as rowid, * from shop_product
)
as a where a.id = @proid
if @str = ' prev '
set @rowid = @rowid - 1
else
set @rowid = @rowid + 1

select * from (
select ROW_NUMBER() over ( order by createdate desc ) as rowid, * from shop_product
)
as a where a.rowid = @rowid
END
2:DAL层表的DAO代码中新加
 
  
/// <summary>
/// 根据商品ID获取上一件或者下一件商品
/// </summary>
/// <param name="proid"> 商品ID </param>
/// <param name="str"> 上一件:prev,下一件:next </param>

public xh.shop.Model.product GetPrevOrNextProModel( int proid, string str)
{

string proc = " proc_PrevorNextPro " ;
Database db
= DatabaseFactory.CreateDatabase();
DbCommand dbCommand
= db.GetStoredProcCommand(proc);
db.AddInParameter(dbCommand,
" proid " , DbType.Int32, proid);
db.AddInParameter(dbCommand,
" str " , DbType.String, str);
xh.shop.Model.product model
= null ;
using (IDataReader dataReader = db.ExecuteReader(dbCommand))
{
if (dataReader.Read())
{
model
= ReaderBind(dataReader);
}
}
return model;
}

3:ui层中HTML代码

ContractedBlock.gif ExpandedBlockStart.gif View Code
 
   
< asp:HyperLink ID ="hlprev" runat ="server" >
< img border ="0" height ="19" src ="images/ansh.gif" width ="47" />
</ asp:HyperLink >
< asp:HyperLink ID ="hlnext" runat ="server" >
< img border ="0" height ="19" src ="images/anx.gif" width ="47" />
</ asp:HyperLink >

图片名称自己修改

4:后台代码如下(model.id为自己目前商品的ID)

ContractedBlock.gif ExpandedBlockStart.gif View Code
 
   
// 上一页
Model.product m_prev = new xh.shop.DAL.product().GetPrevOrNextProModel(model.id, " prev " );
if (m_prev != null )
{
hlprev.NavigateUrl
= " pro.aspx?id= " + m_prev.id;
}
else
{
hlprev.Visible
= false ;
}
// 下一页
Model.product m_next = new xh.shop.DAL.product().GetPrevOrNextProModel(model.id, " next " );
if (m_next != null )
{
hlnext.NavigateUrl
= " pro.aspx?id= " + m_next.id;
}
else
{
hlnext.Visible
= false ;
}

转载于:https://www.cnblogs.com/luqingsong/archive/2011/02/18/1957689.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值