ASP.NET 页面地址栏 回退 导致 JS 脚本 问题

qiangzi0815 2011-12-14 03:52:52
问题就是在查询页面上进行查询数据,当查询条件没有数据时进行脚本 alter 提示,然后 点击查询页面上新增按钮,跳转至新增数据页面,在新增数据页面上有一个返回按钮,整个过程就是 在查询页面上查询,但是没有满足条件的数据时进行 alter 提示,是使用
HttpContext.Current.Response.Write("<script type='text/javascript'>alert('{0}');</script>");

输出到页面最上面的脚本代码,在提示过后点击 新增 ,跳转至 新增页面 ,点击 新增页面 上的 返回按钮 ,onClick="window.history.back();" 返回到查询数据页面,但是页面还是会再次进行 无数据提示 , 页面上的第一行就是服务器输出到客户端的无数据脚本提示,请问大侠有什么办法解决这个问题呀,感激不尽,泪牛满面。。。。
...全文
90 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuleiyu121520 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 qiangzi0815 的回复:]
救命呀
[/Quote]
楼主还没弄出来?是不是就是要返回?
qiangzi0815 2011-12-16
  • 打赏
  • 举报
回复
救命呀
qiangzi0815 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 haa17 的回复:]
url重新加载,跟你第一次打开这个页面的效果是一样,不应该还有alert提示。

你alert提示,写什么地方了?
[/Quote]

你的,我的回退是 使用 location.back()方式的, 回退页面有alter是因为在查询页面时,查询不到数据,使用 HttpContext.Current.Response.Write("<script type='text/javascript'>alert('{0}');</script>");
输出到页面最上面的,在 点击 返回 时,因为是 location.back() ,所以依然有这段脚本代码,所以还会进行提示
haa17 2011-12-14
  • 打赏
  • 举报
回复
url重新加载,跟你第一次打开这个页面的效果是一样,不应该还有alert提示。

你alert提示,写什么地方了?
qiangzi0815 2011-12-14
  • 打赏
  • 举报
回复
谢谢楼上的,我去试试
  • 打赏
  • 举报
回复
你在新增界面的Load事件中添加这段代码
if (Request.UrlReferrer != null){
ViewState["UrlReferrer"] = Request.UrlReferrer.ToString(); }
用来记录上次的链接地址
然后在返回的事件中添加
Response.Redirect(ViewState["UrlReferrer"].ToString());
如何这个不可以返回的话,就是因为你的页面包含在一个框架里面所以可以这样试下
Response.Write("<script>window.top.location.href='" + ViewState["UrlReferrer"].ToString() + "'</script>");
我的界面中一般都采用这种方式 不知道可以帮到你不 可以试下可以不
qiangzi0815 2011-12-14
  • 打赏
  • 举报
回复
木有用,因为返回上一个页面,在页面上始终有 alter 提示的脚本代码,window.location.href=document.referer 还是一样的效果,跪求解决方案呀,还有一个小时下班啦
qiangzi0815 2011-12-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 chen_ya_ping 的回复:]
1.首先你不应该使用这个来注册客户端脚本,回打乱样式 Response.Write 而是要改用clientscript.registerclientscript..............

2.你返回的代码可以写成window.location.href="你前一个页面的url"
[/Quote]

谢谢你的第一点提示
关于第二点,在页面上采用都是服务器控件,它的每一次点击都是一次请求,而且有多个地方会链接到新增页面,所以我的 返回 按钮是HTML的button,直接点击location.back();我去试试你的方法,但是我不会在脚本里获取上一次的url,先去百度去,谢谢啊
chen_ya_ping 2011-12-14
  • 打赏
  • 举报
回复
1.首先你不应该使用这个来注册客户端脚本,回打乱样式 Response.Write 而是要改用clientscript.registerclientscript..............

2.你返回的代码可以写成window.location.href="你前一个页面的url"
qiangzi0815 2011-12-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tangserver 的回复:]
返回按钮不执行那代码直接跳转回查询页面吧
[/Quote]


还有其他地方是链接到 这个 新增页面 的,不能直接指定 返回到 数据查询 页面
qiangzi0815 2011-12-14
  • 打赏
  • 举报
回复
这个方法是将脚本输出到页面后面的,但是一样会执行 脚本 代码的呀,我之前试过清空缓存,但是代码清空之后 返回 按钮直接 显示 链接 无效的页面,纠结呀
tangserver 2011-12-14
  • 打赏
  • 举报
回复
返回按钮不执行那代码直接跳转回查询页面吧
fy_study 2011-12-14
  • 打赏
  • 举报
回复
给你一个客户端ClientScriptManager脚本方法


/// <summary>
/// 客户端脚本方法
/// </summary>
/// <param name="type">类型1:直接输出提示 ,类型2:可以写脚本</param>
/// <param name="msg">类型1:消息 类型2:脚本</param>
/// <param name="page">请求页</param>
public static void ShowClient(string type, string msg, Page page)
{
ClientScriptManager cs = page.ClientScript;
Random rd = new Random();
if (type == "1")
cs.RegisterStartupScript(page.GetType(), Guid.NewGuid().ToString(), "<script>alert('" + msg + "')</script>");
else
cs.RegisterStartupScript(page.GetType(), Guid.NewGuid().ToString(), "<script>" + msg + "</script>");
}
qiangzi0815 2011-12-14
  • 打赏
  • 举报
回复
在线等呀,等到下班呀

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧