首页 > 代码库 > 关于.net页面提交后css样式不生效的发现

关于.net页面提交后css样式不生效的发现

一直以来没有解决的问题,今天在老师的提示下终于得到解决。

问题:asp.net页面,提交后,或者举例最简单的例子通俗的说,当登陆页面,某一项输入错误,并且使用Response.Write("<script>alert(‘用户名或者密码错误‘);</script>");时。弹出对话框后,此页面的css样式将会失效,主要可以体现在,你的页面本来是居中的,此时却变为全部左对齐。

解决办法  取消Response.Write("<script>alert(‘用户名或者密码错误‘);</script>");的使用。用

ClientScript.RegisterClientScriptBlock(this.GetType(),"msg","alert(‘用户名或者密码错误‘)",true);即可解决。

总结原理:

 用response.write输出JS,因这个些输出会先于文档样式声明,所以会使你的CSS失效.

拓展总结:              RegisterStartupScript() 用于添加要在加载页面后运行的脚本块,通过这种方法添加的脚本块位于 Web 窗体的结尾处,因为必须在脚本运行前定义脚本要修改的 HTML 元素。也就是说,如果您要使用客户端脚本将焦点设置到文本框,必须确保文本框的 HTML 标记位于设置该文本框的焦点的脚本之前。

  RegisterClientScriptBlock() 方法用于为响应客户端事件而执行的脚本代码。通过此方法发送的脚本块位于 Web 页面的开始处,因为这种方法不要求将脚本块置于所有 HTML 元素之后,即它一般不使用文档内自定义的控件。

关于.net页面提交后css样式不生效的发现