动态修改页面的DOCTYPE及一个小发现

    在实现新的Skin-Paperclip的时候,页面DOCTYPE需要使用:    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    可其他的Skin使用的都是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    而所有的Skin都是通过一个default.aspx以控件的方式加载的,如果改了default.aspx的DOCTYPE,其他Skin的页面显示就会受影响,只能根据不同的Skin显示不同的DOCTYPE,我想到了一个方法,重载Render方法,在页面Render之前输出所需的DOCTYPE,代码如下:
    先删除default.aspx中的DOCTYPE代码。
protected override void Render(HtmlTextWriter writer)
        {
            
if (!IsPostBack)
            {
                
if(CurrentBlog.Skin.IsXHTML)
                {
                    writer.Write(
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">");
                }
                
else
                {
                    writer.Write(
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
                }
            }
            
base.Render(writer);
        }
    通过上面的代码实现后,有一个小发现。
    不知你有没有注意到,在ASP.NET中,通过.aspx文件显示的页面第一行都是空行(为什么显示空行,需要研究一下相应的源代码才能知道),而使用上面的方法,第一行就没有空行了。
posted @ 2007-02-05 22:39 dudu 阅读(3238) 评论(9)  编辑 收藏 网摘

  回复  引用    
#1楼 2007-02-05 23:05 | title [未注册用户]
2.0里面动态设置的title也会加上换行,怎么去掉呢,谢谢
  回复  引用  查看    
#2楼 2007-02-05 23:12 | Cat Chen      
为什么不能把doctype也放到skin里面去呢?
  回复  引用  查看    
#3楼 [楼主]2007-02-05 23:19 | dudu      
@Cat Chen
Skin中只有控件,default.aspx动态加载Skin中的控件。
  回复  引用  查看    
#4楼 2007-02-06 14:06 | 曲滨      
有用
  回复  引用  查看    
#5楼 2007-02-06 18:15 | Wisdom-zh      
@曲滨
有用:)
  回复  引用    
#6楼 2007-02-07 11:07 | robinz-hbifts [未注册用户]
为什么会有空行?
是因为在aspx页面中,"<!DOCTYPE html PUBLIC"前面是<%@ %>标记,其后是一个回车接着DOCTYPE的.
如果去掉这个回车,页面上面就没了 :)
  回复  引用    
#7楼 2007-02-07 23:44 | o [未注册用户]
2.0里面动态设置的title也会加上换行,怎么去掉呢,谢谢

--把head里的runat=server去掉就没有了.
  回复  引用  查看    
#8楼 [楼主]2007-02-08 14:12 | dudu      
@robinz-hbifts
的确是这个原因。谢谢!
  回复  引用    
#9楼 2007-10-03 05:05 | Oliver_yin [未注册用户]
放到代码里面显示 CurrentBlog出错。 到底怎样添加到代码中,请指点!!

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-02-08 14:12 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: