首页 新闻 会员 周边 捐助

response.write引起的css丢失求解

0
悬赏园豆:10 [已关闭问题]
<P>&nbsp;&nbsp;&nbsp; 遇到此问题是在一个会员注册页面,由于某种原因不能采用集成的验证控件,只采用js却又不安全,只能在服务端做进一步验证。在添加某些项目时,会出现添加不正确的情况我采用了alert的形式做提示然后返回back到之前状况,可原有css加载出现问题。片段代码如下: </P> <P><SPAN style="COLOR: #0000ff">string</SPAN><SPAN style="COLOR: #000000"> name </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> tbname.Value.ToString().Trim();<BR></SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (name </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #800000">""</SPAN><SPAN style="COLOR: #000000">)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(</SPAN><SPAN style="COLOR: #800000">"</SPAN><SPAN style="COLOR: #800000">&lt;script language=javascript&gt;alert('Please input&nbsp; name!');history.back();&lt;/script&gt;</SPAN><SPAN style="COLOR: #800000">"</SPAN><SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.End();<BR>}<BR></SPAN>看了一些文字说是采用 <BR>Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "inputname", "alert('Please input&nbsp; name!');history.back();", true); <BR>此句来替换Response.Write,可新问题是白屏且无任何提示窗口弹出,感觉和Response.End();有点关系,而Response.End()是阻止程序由于出错而继续向下执行的,不知是否结构有问题,还望各位大侠赐教一二<BR></P>
孤独逍遥的主页 孤独逍遥 | 初学一级 | 园豆:190
提问于:2008-06-06 10:02
< >
分享
其他回答(6)
0
在后台弄一个 public string ErrorMessage PageLoad的时候给它赋值. 在页面上 <% =ErrorMessage %>就可以显示出来了,不要用Response.Write~~
沙加 | 园豆:3680 (老鸟四级) | 2008-06-06 10:17
0
把Response.End()去掉,将脚本中的history.back();也去掉 这样应该就可以了,试试吧。
玉开 | 园豆:8822 (大侠五级) | 2008-06-06 10:26
0
Response.Write()会在页面最顶端进行输出,这时你的<DOCTYPE>声明会失效,因为<DOCTYPE>按规定必须出现在页面HTML的第一行,所以你针对某种标准写的CSS会因为解析标准不同而出现错乱 所以使用Page.ClientScript.RegisterClientScriptBlock()是正确的,至于白屏,确定是因为Resopnse.End()造成的,去掉了 history.back()这里好像也用不到
丁学 | 园豆:18730 (专家六级) | 2008-06-06 13:26
0
Response.Write("<script language=javascript>alert('Please input name!');this.location.href='javascript:history.go(-1);</script>");
致博腾远 | 园豆:1389 (小虾三级) | 2008-06-06 16:55
0
用Page.ClientScript.RegisterClientScriptBlock()可以的,输出的内容 在<form></form>之间,不会影响页面布局的. 白屏是因为Resopnse.End()造成的,禁止了以下内容的输出,自然什么都没有了.
chgBlog | 园豆:210 (菜鸟二级) | 2008-06-06 18:15
0
直接使用Response.Write()会出现三楼 丁学 提到的问题。可以使用这个方法:ScriptManager.RegisterStartupScript()
luotong | 园豆:4 (初学一级) | 2008-06-07 16:18
0
Response.Write输出到<html>前面,当然会影响到CSS,是不是history.back();有问题?没试。
风海迷沙 | 园豆:4453 (老鸟四级) | 2008-06-10 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册