2011-09-19 65 views
1

我在我的網站有一個頁面有5個不同的文本框,以添加不同的東西到我的數據庫。我希望每個人都能夠擁有與之相關的成功代碼,但也能夠刷新頁面。我使用Response.Write("<script>alert(" & "'Image Title added successfully'" & ")</script>")來顯示消息,但是當我向其添加Response.Redirect("AddToPicklist.aspx")時,成功消息不再顯示。有沒有更簡單的方法來做到這一點是ASP.net?VB.net成功和刷新代碼?

<tr><td class="title">Image</td></tr> 
    <tr><td>Image Title: </td></tr> 
    <tr><td><asp:TextBox ID="txtImageTitle" runat="server"></asp:TextBox></td></tr> 
<tr><td><asp:Button ID="btnSubmitImage" runat="server" Text="Submit" /></td></tr> 
</table><br /> 

Protected Sub btnSubmitImage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmitImage.Click 
**insert code is here but it's not relevant so I'm omitting it** 
Response.Write("<script>alert(" & "'Image Title added successfully'" & ")</script>") 
Response.Redirect("AddToPicklist.aspx") 
+0

現在我將使用'回覆於(「<腳本類型=‘文本/ JavaScript的’> {警報(‘圖片標題成功添加’); document.location .href ='AddToPickList.aspx';}「)' 我會在即將到來的項目中使用WebServices。我現在正在進行的項目太專注於我嘗試學習新東西。感謝大家! – jlg

+0

你可以回答你自己的問題,只是爲了解決它:) :) –

+0

我不得不輸入評論,因爲我的聲望還沒有那麼高。它說了6個小時後回答的東西:)但現在我會。謝謝 – jlg

回答

0

我要使用Response.Write("<script type='text/javascript'>{ alert('Image Title added successfully'); document.location.href = 'AddToPickList.aspx'; }</script>")

2

您在同一個請求中重定向,因此您希望輸出的javascript將不會呈現。

1解決方案將是一個查詢字符串傳遞給你的下一個頁面,如:

Response.Redirect("AddToPicklist.aspx?alert=titleadded") 

然後在AddToPicklist.aspx做:

If Request.QueryString("alert") = "titleadded" Then 
    Response.Write("<script>alert(" & "'Image Title added successfully'" & ")</script>") 
End If 

另外,您可以在警報後通過JavaScript重定向頁面,但是這對於沒有啓用JavaScript的用戶會很糟糕。


在一個側面說明,考慮使用ClientScriptManager.RegisterStartupScript輸出的JavaScript,而不是Response.Write

http://msdn.microsoft.com/en-us/library/asz8zsxy.aspx

1

的重定向將使得網頁(或另一頁 - 不知道你頁面被調用)從零開始重新加載,因此不會再次輸入點擊事件,並且不會插入<script>

我建議不要在客戶端上使用Response.Write生成消息。至少,使用的RegisterClientScriptBlock如

RegisterClientScriptBlock("showSaveMessage", _ 
    "<script language=""JavaScript""> _ 
     alert('Your changes have been saved.'); _ 
    </script>") 

(from MSDN)

但我反而考慮使用WebService to write to your DB。然後你不必完整的回傳。