Лично нет «простого» способа сделать это, не пройдя через контрольную страницу или событие.
Из того, что вы говорите, я мог бы представить себе нечто подобное. Предполагая два элемента управления A и B, которые являются вашими элементами управления пейджером.
Содержащая страница подписывается на событие «PageSelectionChanged» в обоих элементах управления, в ответ на это событие обновляет данные, которые у вас уже есть, И перечисляет все элементы управления пейджером, устанавливая значение «Текущая страница».
У вас уже есть канализация событий для связи со страницы управления -> страница, используйте то, что вы уже создали.
Почему не сессия?
Меня спросили в комментариях, будет ли это лучше, чем сессия, и ответ - да, по ряду причин.
- Информация о сеансе, если явная очистка не существует в течение сеанса пользователя (обычно 20 минут)
- Поскольку номер 1, вам нужно будет добавить элементы на страницу, чтобы (! Ispostback) "очистить" переменные сеанса, чтобы пользователь не запускался на другой странице.
- В будущем рост числа приложений, информация о сеансе должна быть перенесена из процесса в SQL Server или иным образом для работы в среде веб-фермы, для этого я также стараюсь избегать этого.
- При использовании сеанса эта информация хранится в памяти на веб-сервере, хотя она небольшая (4 байта, если целое число), может сложиться и не нужна
- В зависимости от характера ваших обновлений, вы не можете обеспечить порядок элементов управления с помощью одного сеанса, чтобы гарантировать, что 1 элемент управления принудительно обновляет все элементы управления.
Существуют и другие решения, решение, подобное опубликованному выше, которое рекурсивно просматривает страницу, но вы должны быть осторожны с этим, чтобы не попасть в ситуацию циклической / бесконечной рекурсии. , если у вас много элементов управления на странице, это может добавить много накладных расходов, чтобы постоянно перебирать все.