.net中上一篇下一篇的实现
1:sql中新建存储过程(注意跟进自己的表修改表名和排序条件
2:DAL层表的DAO代码中新加
View Code
View Code
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
/// <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代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<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)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//上一页
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;
}