2011-04-19 4 views
1

Я хочу использовать функцию Javascript Alert на моей странице ASP.NET.Javascript Alert в ASP.NET

Например, например;

Response.Write("<script language=javascript>alert('ERROR');</script>); 

Но это не работает.

Я спрашиваю здесь, что я делаю неправильно, и все мне предложить, используя RegisterScriptBlock

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), " ", "alert('ERROR')",true); 

Но я не хочу использовать его, потому что он работает с PostBack

Как я могу сделать это без PostBack ?

EDIT: Например, для использования;

try 
{ 
    string strConnectionString = ConfigurationManager.ConnectionStrings["SqlServerCstr"].ConnectionString; 

    SqlConnection myConnection = new SqlConnection(strConnectionString); 
    myConnection.Open(); 

    string hesap = Label1.Text; 
    string musteriadi = DropDownList1.SelectedItem.Value; 
    string avukat = DropDownList2.SelectedItem.Value; 

    SqlCommand cmd = new SqlCommand("INSERT INTO AVUKAT VALUES (@MUSTERI, @AVUKAT, @HESAP)", myConnection); 

    cmd.Parameters.AddWithValue("@HESAP", hesap); 
    cmd.Parameters.AddWithValue("@MUSTERI", musteriadi); 
    cmd.Parameters.AddWithValue("@AVUKAT", avukat); 
    cmd.Connection = myConnection; 

    SqlDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); 
    Response.Redirect(Request.Url.ToString()); 
    myConnection.Close(); 
} 
catch (Exception) 
{ 
    Response.Write("<h2>ERROR</h2>"); 
} 
+0

Что вы действительно пытаетесь сделать? ** Проверка клиента **? есть намного лучшие методы. ** Проверка сервера **? вы обычно отправляете сообщение об ошибке на страницу просмотра/aspx и показываете его – balexandre

+0

Что вы подразумеваете под «без обратной передачи»? Что должно вызывать окно предупреждения? – Heinzi

+0

Проверка сервера. Я хочу использовать его с блокировкой try-catch в базе данных. –

ответ

3

См a note from MSDN:

Если вы хотите зарегистрировать блок сценария, который не относится к частичной странице обновления, и если вы хотите зарегистрировать блок сценария только один раз во время начальной страницы рендеринг, используйте метод RegisterClientScriptBlock класс ClientScriptManager. Вы можете получить ссылку на ClientScriptManager объект с ClientScript страница свойства.

Так что, я думаю ClientScriptManager.RegisterStartupScript метод это то, что вам нужно:

ClientScriptManager cs = Page.ClientScript; 
cs.RegisterClientScriptBlock(
    this.GetType(), 
    " ", 
    @"<script language=javascript>alert('ERROR');</script>", 
    true 
); 
0

Для отображения тревожного сообщения Пользователю, на веб-странице у меня есть код, посмотрите на эту

public void UserMsgBox(string sMsg) 
{ 
StringBuilder sb = new StringBuilder(); 
System.Web.UI.Control oFormObject = null; 
sMsg = sMsg.Replace("'", "\\'"); 
sMsg = sMsg.Replace(Strings.Chr(34), "\\" + Strings.Chr(34)); 
sMsg = sMsg.Replace(Constants.vbCrLf, "\\n"); 
sMsg = "<script language='javascript'>alert(\"" + sMsg + "\")</script>"; 
sb = new StringBuilder(); 
sb.Append(sMsg); 
foreach (System.Web.UI.Control oFormObject_loopVariable in this.Controls) { 
    oFormObject = oFormObject_loopVariable; 
    if (oFormObject is HtmlForm) { 
     break; // TODO: might not be correct. Was : Exit For 
    } 
} 
oFormObject.Controls.AddAt(oFormObject.Controls.Count, new LiteralControl(sb.ToString())); 
} 
+3

Пожалуйста, не копируйте и не вставляйте результаты Google. Это не приветствуется здесь. –

1

В своем коде вы забыли кавычку. Я просто попробовал это на примерной странице:

Response.Write("<script language=javascript>alert('ERROR');</script>"); 

и это сработало. Где вы разместили Response.Write в своем коде? Не могли бы вы дать более подробную информацию? Что ты хочешь делать?

+0

Это не работает. –