2011-04-19 81 views
1

我想在我的ASP.NET頁面中使用Javascript Alert函數。ASP.NET中的Javascript警告

例如這樣;

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

但是,這是行不通的。

我問這裏有什麼我做錯了什麼,每個人都使用RegisterScriptBlock

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

建議我,但我不想使用它,因爲它的工作與PostBack

我該怎麼辦,沒有PostBack

編輯:例如使用;

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

你真的想要做什麼? **客戶驗證**?有更好的方法。 **服務器驗證**?您通常會將錯誤消息發送回您的view/aspx頁面並顯示它 – balexandre 2011-04-19 07:31:24

+0

「無回發」是什麼意思?什麼應該觸發警報框? – Heinzi 2011-04-19 07:33:43

+0

服務器驗證。我想用我的數據庫連接try-catch blocke .. – 2011-04-19 07:34:41

回答

3

a note from MSDN

如果你想註冊一個腳本塊 不屬於部分頁面 更新,如果你想註冊 腳本塊中 初始頁面僅一次渲染,使用 RegisterClientScriptBlock方法 ClientScriptManager類。您可以從 ClientScript頁面的屬性 獲取對 ClientScriptManager對象的引用。

所以,我覺得ClientScriptManager.RegisterStartupScript方法是你所需要的:使用的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結果。這不是在這裏歡迎.. – 2011-04-19 07:48:17

1

在你的代碼忘了引號。我只是試圖在一個示例頁面如下:

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

和它的工作。你在哪裏放置了Response.Write在你的代碼中?你能提供更多的細節嗎?您想做什麼?

+0

這是行不通的。 – 2011-04-19 07:47:20