Пейджинг для элемента управления ASP.net Repeater с функцией отображения следующих 10 страниц.C#

Место общения программистов C#
Anonymous
Пейджинг для элемента управления ASP.net Repeater с функцией отображения следующих 10 страниц.

Сообщение Anonymous »

Я использую функцию пейджинга для управления ретранслятором и изменил сценарий, взятый по следующей ссылке

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

Вернуться в «C#»