Изменить свойство NumericPagerField ButtonCount во время выполнения

Я реализую пейджинг для ListView в ASP.NET с помощью DataPager и ObjectDataSource, он работал очень хорошо в течение многих лет, но теперь проблема возникает.

В настоящее время мы устанавливаем PageSize на 15, а ButtonCount = 5. Для миллиона строк у нас более 66 тыс. Страниц. Проблема в том, что ширина элемента управления DataPager ограничена определенным числом, и это нормально в первом блоке (1,2,3...), но когда мы переходим к последнему блоку (66000, 660001, 66002,...) Пейджинговый контроль переполнен контейнером.

Мы пришли к решению, которое вычисляет номер страницы на основе StartRowIndex и PageSize элемента управления DataPager, а затем повторно устанавливает значение ButtonCount с помощью

(DataPager.Fields[<NumericPagerFieldIndex>] as NumericPagerField).ButtonCount = x

Затем происходят странные вещи: когда мы переходим на последнюю страницу (66667), нажимаем на 66666, мы все думаем, что он изменит номер страницы на 66666, но нет, вместо 66666 выбрано 66664.

Мы не знаем почему и гуглим, также читаем код DataPager, но все равно ничего не нашли.

Любая помощь будет оценена!

0 ответов

Другие вопросы по тегам