一直以来没有解决的问题,今天在老师的提示下终于得到解决。
问题: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 元素之后,即它一般不使用文档内自定义的控件。