Как вызвать предупреждение Javascript из кода в asp.net - PullRequest
0 голосов
/ 01 марта 2019

Я использовал приведенный ниже код для отображения сообщений с предупреждениями от кода в asp.net.

Home.aspx:

 <asp:ScriptManager runat="server" ID="smHome"></asp:ScriptManager>

Home.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostBack)
   {
      ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowStartStatus", "javascript:alert('Process is started');", true);
      LoadGridView();
   }
}

protected void LoadGridView() 
{
   //ADO.NET code here
   ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowCompletedStatus", "javascript:alert('Process is completed');", true);
}

Но оба предупреждающих сообщения показывались непрерывно после завершения процесса ADO.NET, который доступен в методе LoadGridView ().Я хочу показать первое предупреждающее сообщение перед методом LoadGridView ().Также мне нужно показать второе предупреждающее сообщение после завершения процесса ADO.NET.Я также попробовал метод ClientScriptManager.RegisterClientScriptBlock, чтобы показать эти предупреждающие сообщения.Но это также не работает, как ожидалось.Как решить вышеуказанную проблему?

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Вы пробовали это?

Окно сообщения веб-приложения ASP.NET

ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + message+ "');", true);
0 голосов
/ 01 марта 2019

"Я хочу показать первое предупреждающее сообщение перед методом LoadGridView ()".

Вы не можете.Вы, кажется, не понимаете жизненный цикл своей страницы.

Обычно, когда ваш браузер пытается загрузить страницу aspx, он отправляет HTTP-запрос на сервер.ASP.NET запускает код в вашем коде aspx.Затем он возвращает полученные данные (т. Е. Веб-страницу, которая может включать HTML, CSS и JavaScript) в браузер.Затем сервер прекращает выполнение кода.Теперь страница находится в браузере пользователя.На этом этапе любой код JavaScript, включенный в страницу, будет скомпилирован и выполнен браузером.Больше код .NET не запускается снова, пока браузер не сделает еще один запрос к серверу (например, нажав на ссылку или отправив форму или что-то еще).

Итак, JavaScript и .NET-код выполняются в разное время, в разных контекстах.Вы не можете сделать так, чтобы они блокировались, используя обычный жизненный цикл.

Если вы хотите отобразить сообщение на экране во время загрузки сетки, вам нужно будет загрузить страницу, отобразить сообщение изапуск загрузки вида сетки через запрос AJAX (в веб-формах ASP.NET вы часто можете реализовать это с помощью элемента управления UpdatePanel), чтобы загрузка происходила в отдельном запросе к серверу (а запрос AJAX специально не 'в то же время перезагружаем оставшуюся часть страницы).

...