【问题标题】:asp.net using pagination with repeaterasp.net 使用带中继器的分页
【发布时间】:2011-12-28 16:17:51
【问题描述】:

我想为我的中继器创建分页。在数据库中我有帖子。我想先显示登录用户的帖子,然后再显示其余的帖子(例如每个站点 40 个)。

我想知道是否有办法从 40 到 80 或从 80 到 120 的数据库行中检索。

感谢任何提示。

【问题讨论】:

标签: asp.net sql sql-server-2005


【解决方案1】:

假设您的表格有以下列:ID, UserID, PostedDate, Subject 然后查询可能如下所示:

DECLARE @LoggedInUserID int,
        @RowsPerPage int,
        @PageNum int;

SELECT  @LoggedInUserID = 1,
        @RowsPerPage = 10,
        @PageNum = 1; 

with BlogPostCTE
AS
(
    select 
    bp.ID,
    bp.UserID,
    bp.PostedDate,
    CASE WHEN bp.UserID = @LoggedInUserID THEN 1 ELSE 0 END as IsLoggedInUser,
    bp.[Subject]
    from BlogPost as bp
), BlogPostWithPagingCTE
AS
(
    Select Top(@RowsPerPage * @PageNum)
    ResultNum = ROW_NUMBER() OVER (ORDER BY IsLoggedInUser desc, UserID, PostedDate asc),
    ID,
    UserID,
    PostedDate,
    IsLoggedInUser,
    [Subject]
    FROM BlogPostCTE
)

select
    ID,
    UserID,
    PostedDate,
    [Subject]
FROM BlogPostWithPagingCTE
where ResultNum > ((@PageNum - 1) * @RowsPerPage)

【讨论】:

    猜你喜欢
    • 2010-09-06
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多