Я занимаюсь разработкой приложения ASP.NET.
Архитектура приложения - одна страница Index.aspx
, которая включает 6 пользовательских элементов управления.
Login.ascx
Entry.ascx
function1.ascx
function2.ascx
function3.ascx
function4.ascx.
Поток использования - это то, что пользователю необходимо выполнить вход в систему с помощью элемента управления Login
, а после завершения он перейдет к элементу управления Entry
, где он сможет принять решение, какой вид функции он хочет перейти. В каждом представлении функций есть кнопки, которые будут отправлять некоторые файлы на удаленный сервер. И поскольку все элементы управления находятся внутри одного и того же Index.aspx
, навигация осуществляется путем переключения видимости элементов управления в PostBack
.
Теперь проблема: из-за того, что слишком много функций необходимо подключить к удаленному серверу, мне нужно показать статус выполнения, когда действие занимает слишком много времени. Я думаю, используя UpdateProgress
и UpdatePanel
Вариант 1: поместите только кнопки внутри UpdatePanel
. Но тогда в PostBack
я не могу переключить видимость внешних элементов управления.
Вариант 2: обернуть каждый отдельный элемент управления внутри UpdatePanel
отдельно и выполнить UpdateMode=Always
. Но я беспокоюсь о производительности.
Вариант 3: обернуть каждый пользовательский элемент управления внутри UpdatePanel
отдельно и выполнить UpdateMode=Conditional
. А затем программно выполните Update
для элементов управления, которые мне нужно включить в PostBack
.
Вариант 4: поместить все 6 пользовательских элементов управления в один UpdatePanel
.
Вариант 5: просто используйте OnClientClick
, чтобы показать статус прогресса, и используйте ScriptManager
, чтобы переключиться обратно в PostBack
Мне не нравится ни один из них. Есть ли другие варианты?