VB.net成功并刷新代码?

时间:2011-09-19 15:39:27

标签: javascript asp.net vb.net refresh

我的网站中有一个页面,其中有5个不同的文本框,可以为我的数据库添加不同的内容。我希望每个人能够拥有与之相关的成功代码,但也能够刷新页面。我使用Response.Write("<script>alert(" & "'Image Title added successfully'" & ")</script>")来显示消息,但是当我向其添加Response.Redirect("AddToPicklist.aspx")时,成功消息不再显示。 ASP.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")

3 个答案:

答案 0 :(得分: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 :(得分: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。然后你就不必有完整的回发。

答案 2 :(得分:0)

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