У меня есть страница asp.net, которая должна заполнять древовидное представление на основе структуры каталогов. Вместо того, чтобы пользователь смотрел на пустую страницу при создании узлов, я пытаюсь использовать UpdateProgress для загрузки изображения.
Поиск по различным темам в Интернете дал мне несколько разных вещей, которые я пробовал, у каждой из которых есть свои проблемы, которые я не могу решить.
Вариант 1 использует следующий JavaScript:
function pageLoad() {
__doPostBack('btnBuildTree', '');
}
Это событие автоматически подключено, поэтому мне не нужно добавлять тег onload к элементу body.
Для тестирования мой код выглядит так:
protected void btnBuildTree_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);
// minor code here to know it did something
}
Когда я настроил это так, страница загружается, процесс обновления выполняется так, как я хочу, и когда btnBuildTree_Click завершает обновления UpdatePanel, и все замечательно, за исключением того, что он немедленно запускает другую обратную передачу, запускает javascript pageLoad ( ) функция, вызывающая обратную передачу btnBuildTree и т. д.
Вариант 2 имеет только одно изменение, и это касается JavaScript:
function buildTree() {
__doPostBack('btnBuildTree', '');
}
И я добавляю этот тег:
<body onload="buildTree()">
С этой настройкой страница загружается, событие btnBuildTree_Click запускается и выполняет всю свою работу, а когда оно завершено, оно не вызывает другую обратную передачу, поэтому у меня нет цикла. Единственным недостатком этого является то, что UpdateProgress никогда не показывается, поэтому он не имеет смысла пытаться дать им «загрузочный экран».
Я верю, что просто что-то упускаю, и я надеюсь, что кто-то может указать, что это такое.
Спасибо!