.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;
}
posted @ 2011-02-18 12:32  卢青松  阅读(1868)  评论(0编辑  收藏  举报