今日红缨在手


  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  50 随笔 :: 0 文章 :: 133 评论 :: 5 引用

    自打学会了使用页面基类的那年开始,我的BasePage类中的这个函数都是这么写得

protected override void OnInit(EventArgs e)
        {
            
this.Error +=new System.EventHandler(this.BasePage_Error);
        }
程序工作的也很正常,自然不会怀疑它的正确性.直到有一天我想使用2005的Theme功能,问题出现了: 我按照MSDN所写的文档,在BasePage中添加了OnPreInit函数并在其中设置了Theme.运行后发现问题,在别的示例程序程序中工作正常的换肤功能,在我的程序中有问题,只有服务器端控件能够正确应用Skin中的设置,Html控件却没有应用我写的StyleSheet设置.
    打开页面输出结果查看,发现页面的<head></head>段中没有正确的添加Theme中包含的Css文件的链接!所以客户端的CSS属性都没有应用上.这个问题困扰了我好几天,始终没有找到问题所在,万般无奈只好自己写代码把Theme中CSS文件URL添加到Header中去:
void BasePage_PreRender(object sender, EventArgs e)
        
{
            
if (Header != null)
            
{
                HtmlLink hl 
= new HtmlLink();
                hl.Attributes.Add(
"rel""stylesheet");
                hl.Attributes.Add(
"type""text/css");
                hl.Href 
= HttpRuntime.AppDomainAppVirtualPath + "/App_Themes/" + this.Theme + "/" + this.Theme + ".css";
                Header.Controls.Add(hl);
            }

        }
这样CSS倒是能够正常工作了,但是心里一直觉得很别扭. 直到有一天...突然发现上面这个OnInit函数中好像少了一行代码,眼前一亮,立即添加上:
protected override void OnInit(EventArgs e)
        {
            
base.OnInit(e);
            
this.Error +=new System.EventHandler(this.BasePage_Error);
        }
然后运行...好了!!!

posted on 2006-04-19 11:49 大剑师 阅读(314) 评论(3)  编辑 收藏 所属分类: ASP.NET成功之母

评论

#1楼  2006-04-19 12:09 mikespook      
如果用过delphi,仔细看过VCL的代码你就会发现不但可能要调用基类的方法,而且还跟调用顺序有关~~~
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.Error +=new System.EventHandler(this.BasePage_Error);
}


protected override void OnInit(EventArgs e)
{
this.Error +=new System.EventHandler(this.BasePage_Error);
base.OnInit(e);
}

这两种看似一样的方式,可能会产生大相径庭的结果~~
  回复  引用  查看    

#2楼 [楼主] 2006-04-19 12:31 大剑师      
@mikespook
谢谢你的回复, 你说得这个问题我倒是了解. 产生这个问题的关键在于我认为在函数OnInit中服务器后台没有什么工作(而以前好像也是这样的),所以才会删除base.OnInit(e);这行代码.
  回复  引用  查看    

#3楼  2008-08-29 14:07 赛纳行星      
呵呵。我初次使用这个,会产生什么大相径庭的结果?请明示,想学习一下,呵呵
  回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-04-19 12:24 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: