2017-10-13 111 views
0

的OnPreRender事件改写我试图使用部分类在部分类

第一类是从Kentico CMS重写的OnPreRender事件,我不能改变的类,因为它是在CMS默认类。现在我想在第一个类中重写OnPreRender事件的默认行为,这是我手动创建的一个自定义类的第二个类。

1级

using System; 
using System.Collections.Generic; 
using CMS.UIControls; 
using CMS.ExtendedControls; 
using CMS.PortalEngine; 
using CMS.Helpers; 

public partial class CMSPages_PortalTemplate : PortalPage 
{ 

    protected override void OnPreRender(EventArgs e) 
    { 
     base.OnPreRender(e); 

     // Init the header tags 
     //tags is a label 
     tags.Text = HeaderTags; 


     if (PortalContext.ViewMode.IsWireframe()) 
     { 
      CSSHelper.RegisterWireframesMode(this); 
     } 
    } 
} 

2级

using CMS.UIControls; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 


public partial class CMSPages_PortalTemplate : PortalPage 
{ 
    public CMSPages_PortalTemplate() 
    { 

    } 

    protected override void OnPreRender(EventArgs e) 
    { 
     //Override behavior 
     tags.Text = tags.Text + HeaderTags + "MyTest"; 
    } 

} 

这可能吗?我尝试过调试,但它从未打过第二类的OnPreRender事件

回答

0

看起来您正在以ASPX模式开发,那么您需要先创建主页面模板,然后让您的后续页面从该主页面继承。从那里你的网页将会击中该事件。其次,类名与默认门户页面模板具有完全相同的类名。所以这可能是目前还没有被击中的另一个原因。它甚至可以在那个地方运行起来。

documentation

0

您试图覆盖部分类相同的方法跟随。

而不是创建部分类从CMSPages_PortalTemplate继承您的cumtom类