日期:2014-05-19  浏览次数:20415 次

JS加载的内容消失?
我在开发ASP.NET的时候,遇到一个情况是这样的:

页面中有一部分内容是用JS加载的,点击按钮弹出对话框的时候,这部分JS加载的内容消失了。

弹出对话框的代码如下:
strScript   =   " <script> alert( '该记录已存在! '); </script> ";
Page.ClientScript.RegisterStartupScript(this.GetType(),   "提示 ",   strScript);

请教解决方案

------解决方案--------------------
在html检查一下,有没有这个脚本?
------解决方案--------------------
可能是页面刷新了
按钮弹出对话框是服务器事件吗?
------解决方案--------------------
是不是在
Page.ClientScript.RegisterStartupScript(this.GetType(), "提示 ", strScript);

后 执行了 页面刷新?
------解决方案--------------------
Page.ClientScript.RegisterStartupScript(this.GetType(), "提示 ", strScript);
实际上是往你的页面里面 添加脚本的操作
但是 你刷新了
重新Page_Load后 没有执行这个方法 当然不会出现这个脚本了啊
------解决方案--------------------
页面上用JS加载的内容,刷新后都会丢失.

楼主执行这两行语句:
strScript = " <script> alert( '该记录已存在! '); </script> ";
Page.ClientScript.RegisterStartupScript(this.GetType(), "提示 ", strScript);
已经提交了刷新请求.


解决的办法有:
1.弹出提示后再次调用JS方法加载该数据.
2.你的判断事件不要提交服务器,直接在前台用JS判断记录是否已重复.
3.JS加载访数据之后,把该数据保存到一个隐藏Hiddle控件中,刷新后再从里面读相关的数据.
------解决方案--------------------
刷新了的话可以在Page.IsPostBack处理,每次按钮再输出一下js,换成RegisterClientScriptBlock

public void Alert(string message)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), message+ "_Alert ", "alert( ' " + message + "无信息! ') ", true);
}