Как отладить программу подкачки C# с повторителем - PullRequest
0 голосов
/ 29 мая 2020

Я не могу получить желаемый результат от публикации, которую я использую для размещения на своем веб-сайте. Я хочу выполнить разбиение по страницам с помощью элемента управления повторителем.

Я имею в виду этот метод (сообщение) для реализации (сообщение c острый угол )

Описание проблемы:

  1. Я не хочу реализовывать функцию хранимой процедуры, поэтому я следил за этим сообщением только до шага №3.
  2. Я установил размер страницы как 1, и у меня есть 4 записи в базе данных.

  3. Повторитель пейджинга (Repeater1 согласно коду) правильно показал 4 страницы

  4. Проблема в том, что при нажатии на последнюю страницу результат не отображается. Чтобы объяснить точную проблему, я разместил неверный код на по этой ссылке .

  5. Список всех 4 сообщений можно просмотреть по по этой ссылке . (прокрутите до конца страницы)

Какая может быть основная проблема, вызывающая эту проблему?

Шаги, предпринятые мной: 1. Я пробовал установить pdsData.CurrentPageIndex = 0; до 1 в строке №41 (шаг 3) - проблема не решена 2. Я попытался установить

ViewState["PageNumber"] = Convert.ToInt32(e.CommandArgument); 

как

ViewState["PageNumber"] = Convert.ToInt32(e.CommandArgument)+1; 

проблема осталась прежней (номер строки 61 или шаг 3 )

Я открыт для альтернативных способов достижения эффективного пейджинга с использованием управления повторителем. Я использую asp. net версию 4.5.

1 Ответ

0 голосов
/ 03 июня 2020

Я считаю, что проблема в коде связана с для l oop:

for (int i = 1; i <= pdsData.PageCount; i++)  
alPages.Add((i).ToString());

Этот l oop был инициализирован как i = 1, а индекс обычно начинается с НУЛЬ. Я изменил эту инициализацию на i = 0. Это сделало мой для l oop следующим образом:

for (int i = 0; i < pdsData.PageCount; i++)  
alPages.Add((i).ToString());

Это устранило проблему с пустой страницей.

Примечание: Это решение инициирует пейджер (номера страниц внизу) начинаются с 0, 1, 2, и т.д. c вместо 1, 2, 3 и т. д.

Я исправил это, добавив единицу (+1) к связанный файл на странице .aspx. см. пример ниже:

<%#Int32.Parse( Container.DataItem.ToString())+1%>

Эти изменения сделали подкачку без ошибок репитера и сглаживали.

...