我有一个Web应用程序(Help Desk Ticket System),它有一个收件箱来监控传入的请求,并制作了一些过滤按钮,帮助用户根据请求者的姓名、创建日期等来安排请求。
每个筛选器都会简单地调用同一页,但会向查询字符串添加一些代码。例如,如果用户按下一个标记为Sort by Date的按钮,下面是该按钮的代码:
Response.Redirect("Inbox.aspx?Filter=DATE")另一个按钮将类似地执行:
Response.Redirect("Inbox.aspx?Filter=NAME")GridView将填充一些行(传入请求的摘要),并根据用户的喜好进行排序。
一旦用户决定查看任何传入请求的完整详细信息,单击任何行都会显示
Response.Redirect("Details.aspx?REQ_ID=123")
'where 123 is the request number the user clicked然后,用户有机会使用Details.aspx页面上的几个按钮来更新/编辑请求,但是每个按钮都需要将用户返回到收件箱,并且优先选择修改Details.aspx页面之前的过滤器。
换句话说,一旦用户按下Details.aspx页面上的按钮,我就会执行以下操作
Sub btnUpdateRequest() Handles btnUpdateRequest.Click
'My code here for the button action (update/edit/send/cancel)
' once the job is done, return the user to the Inbox.aspx page with the same filter
Response.Redirect("javascript:History.Back()")
End Sub但我知道Response.Redirect不接受javascript,我也不想把代码分成后台代码文件和ASPX文件(添加OnClientClick属性),因为我既需要执行VB指令,也需要重定向用户。
发布于 2011-06-20 20:05:04
您可以重定向到referrer URL。您可能应该先检查一下它是否可用。
if (Request.UrlReferrer.AbsoluteUri != null) {
Response.Redirect(Request.UrlReferrer.AbsoluteUri);
}发布于 2011-06-20 20:02:50
下面可能会对你有所帮助。将此代码放在button click()中
Page.RegisterStartupScript("goBack", "<script type=""text/javascript"" language=""javascript"">window.history.go(-1);</script>")发布于 2013-04-13 06:52:49
您可以使用ClientScript.代替Page.,如下所示:
ClientScript.RegisterStartupScript(
GetType(String),
"goBack",
"<script type=""text/javascript"" language=""javascript"">window.history.go(-2);</script>")我的建议中的.go(-2)是必需的(ReportViewer)。
https://stackoverflow.com/questions/6410731
复制相似问题