其实标题无法完全把我想说的问题表达出来,但是也包含了其中的一点。下面有2种情况下会出现刷新后字体样式消失的问题。
第一种情况,问题是这样的:一个登录界面,我为字体设计了样式,当然是在样式表里写的,在一开始加载此页的时候一切都是正常的,但是当我点击Login的时候,当然这时候会有个验证,当用户名或密码不对的时候,会弹出一个提示框进行提示。
问题就出在当我点击完提示框上的确定以后,再看到的页面已经没有了字体样式。
解决方法:我最初提示框写的代码是这样的
1
|
Response.Write(
"<script>alert('用户名或密码错误,登录失败 !');</script>"
);
|
后来我改写成了
1
|
this
.RegisterStartupScript(
"j1"
,
"<script>alert('用户名或密码错误,登录失败 !');</script>"
);
|
运行一下,效果是一样的,但是字体样式不会消失。
第二种情况,当我点击下拉菜单时,字体样式又再次消失。这里DropdownList控件的AutoPostBack属性必须是True的情况下,因为只有这样设置的时候,都会启动激活事件,点击之后才会进行刷新。
这两种情况导致的问题出现,仔细观察不难看出都是由于页面刷新的缘故,为什么呢?从第一种情况两个函数稍稍能看出点什么。
Response.Write:使用输出流在页面输出项。
RegisterStartupScript:注册启动脚本,页面onload时触发。
上面那个调用时页面进行了刷新,下面那个是在页面加载的时候就已经注册,也就是说调用后不会再进行刷新。
最后我想到的解决办法是可以用ajax去做,虽然用ajax问题能被解决,但是要知道,为了一个字体样式,就去使用ajax我觉得不太值。
不知道有没有别的办法解决这样的类似问题,希望知道的朋友能给出一些点子。
本文转自 我不会抽烟 51CTO博客,原文链接:http://blog.51cto.com/zhouhongyu1989/1320783,如需转载请自行联系原作者