.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代码

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)

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 ;
}

你可能感兴趣的:(.net)