2014-12-31 1 views
0

Я хочу показать оповещение на моей веб-странице. Я использовал Response.Write с помощью блока catch try. Когда он показывает предупреждение, страница становится белой, а затем, когда я нахожусь в окне предупреждения, страница возвращается. Я хочу, чтобы страница оставалась неизменной и отображалось предупреждение. Как я могу это сделать? Это мой код на C#.Как не сделать мигание экрана при использовании Response.Write

protected void ImageSave_Click(object sender, ImageClickEventArgs e) 
    { 
     SqlConnection cnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]); 
     cnn.Open(); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = cnn; 

     cmd.CommandText = 
        "insert into BranchMst(SaupCode,BranchCode, BranchName, UseFlag, SeqNo) values (" 
        + "'" + comboSaup.SelectedValue 
        + "','" + txtBranchCode.Text.TrimEnd() 
        + "','" + txtBranchName.Text.TrimEnd() 
        + "','" + txtSeqNo.Text.TrimEnd() 
        + "')"; 
     try 
     { 
      int ret = cmd.ExecuteNonQuery(); 
     } 
     catch (System.Data.SqlClient.SqlException ex) 
     { 
      Response.Write("<script> alert('Error.Please check your ID');history.back(); </script>"); 
     } 
     cnn.Close(); 

     ReflashData_Grid1(); 
     ClearField(); 
    } 
+0

ISCH ... Пожалуйста, посмотрите на SQL Injection, а также, и попытаться использовать параметризованные запросы. – Patrick

ответ

0

Это похоже на проблему рендеринга веб-браузера, а не на сервер. Если вы блокируете процесс рендеринга, например, с помощью метода блокировки, механизм визуализации не может обрабатывать другие инструкции HTML и скрипта. Следовательно, вам нужно вызвать асинхронное окно сообщения.

Не проверял, но это может работать:

Response.Write("<script>setTimeout(alert(\'Error.Please check your ID\');history.back();', 200)</script>"); 

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

+0

Я пробовал, но все еще не работал. Благодарю ваш комментарий. Это моя первая работа, поэтому здесь может быть неправильно. Я попробую другой способ справиться с этой ситуацией :) – naanace

1

Попробуйте один

Response.Write(@"<script language='javascript'>setTimeout(alert(\'Error. Please check your ID\');history.back();', 200);</script>"); 
+0

oh ... Debug работает, но ничего не получается. – naanace

+0

@naanace, что это значит? –

+0

компьютер может уловить ошибку ExecuteNonQuery(), но окно предупреждения не отображается. – naanace