Как сделать что-то, когда страница занята asp.net?
У меня есть веб-приложение asp.net, которое, когда вы нажимаете кнопку, оправдывает все мои вещи, но работает медленно, требуется от 10 до 15 секунд, и я не хочу, чтобы пользователи рассылали спам, нажимая кнопку, когда сайт занят. Таким образом, я планировал отключить кнопку и сделать метку ниже, чтобы она стала buesy и сказать "Running", а после того, как это будет сделано, кнопка снова активируется, и метка будет "Done", но эта работа с dident, как и планировалось здесь, - мой код для слушатель кнопки.
protected void SubmitButton_Click(object sender, EventArgs e)
{
SubmitButton.Enabled = false;
RunStatus.Text = "Running";
RunStatus.Visible = true;
ErrorField.Visible = false;
//i deleted all my code that actually does the stuff that takes time from here
RunStatus.Text = "Done";
SubmitButton.Enabled = true;
}
проблема в том, что все визуальные вещи происходят после того, как метод запущен, поэтому во время его работы ничего не изменилось, но после того, как было выполнено текстовое шоу. Я также был бы счастлив иметь занятый курсор, но это имеет второстепенное значение.
2 ответа
Оберните свою кнопку в UpdatePanel
и использовать UpdateProgress
контроль, чтобы показать клиенту, что происходит вызов AJAX. Смотрите этот учебник для получения дополнительной информации.
Мне очень жаль, но у вас есть фундаментальный пробел в ваших знаниях о жизненном цикле страницы ASP.NET. Это действительно очень отличается от Windows Forms - к этому типу кода вы применили бы.
Я с уважением предлагаю вам взять приличную книгу по ASP.NET и попытаться создать базовое понимание абстракции ASP.NET над HTTP/HTML.