http://www.dotnetfunda.com/articles/article456 -custom-seo-Friendly-paging-with-aspnet-repeater-or-datalist-control-.aspx
Я в некоторой степени изменил его, и он работает нормально
и постраничный просмотр теперь отображается как
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
Функция пейджинга работает нормально, но мне нужно изменить скрипт, чтобы он отображал первые 5 страниц и следующие 5 страниц, как только пользователь нажимает следующие 10 ссылок вместе с последней и первой Предыдущая функциональность
Пример на основе приведенного выше сценария
Первая – Предыдущая 1 | 2 | 3 | 4 | 5 Следующий5 - Последний
если я нажму на ссылку «Следующий5», она должна отобразиться
Первый – 5Предыдущий 6 | 7 | 8 | 9 | 10 Следующий – Последний
Ниже приведена функция кода и моя хранимая процедура
Код: Выделить всё
private string GetPagingDone(int thisPageNo, int totalCount, int pageSize, string pageName, int LangID, string extraQstringToAdd)
{
int pageno = 0;
int start = 0;
int loop = totalCount / pageSize;
int ilimit = 5;
int remainder = totalCount % pageSize;
StringBuilder strB = new StringBuilder("", 500);
for (int i = 0; i < loop; i++)
{
pageno = i + 1;
if (pageno.Equals(thisPageNo))
strB.Append(pageno + " ");
else
strB.Append("[url=\]" + pageno + "[/url] ");
if (i + 1 == loop)
{ strB.Append(" "); }
else
{ strB.Append(" | "); }
start += pageSize;
}
if (remainder > 0)
{
pageno++;
if (pageno.Equals(thisPageNo))
strB.Append("" + pageno + " ");
else
strB.Append("[url=\]" + pageno + "[/url] ");
}
return strB.ToString() + "";
}
ALTER PROCEDURE [dbo].[usp_ArticleListPaging]
@startRowIndex int,
@pageSize int,
@LangID int,
@totalCount int output
AS
BEGIN
SET NOCOUNT ON;
SET @totalCount = 0
SET @startRowIndex = @startRowIndex + 1
BEGIN
SELECT * FROM ( Select art_Articles.*, ROW_NUMBER() OVER (ORDER BY art_Articles.ArticlePublishDate DESC) as RowNum
FROM art_Articles WHERE art_Articles.ArticleActive = 1 AND art_Articles.ArticleVisible = 1 AND LanguageID =@LangID) as ArticleList
WHERE RowNum BETWEEN @startRowIndex AND (@startRowIndex + @pageSize) - 1 ORDER BY ArticlePublishDate DESC
SELECT @totalCount = Count(ArticleID) FROM art_Articles WHERE art_Articles.ArticleActive = 1 AND art_Articles.ArticleVisible = 1 AND LanguageID =@LangID
END
END
Я не понимаю, почему мне дают минус за вопрос такого рода
Подробнее здесь: https://stackoverflow.com/questions/898 ... t-10-pages