我正在尝试使用部分类重写OnPreRender事件
第一个类来自Kentico CMS,我无法更改这些类,因为它是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 :(得分:0)
看起来您正在开发ASPX模式,然后您需要先创建一个母版页模板,然后让您的后续页面继承该母版页。从那里你的页面将会击中该事件。
其次,类名与默认门户页面模板具有完全相同的类名。所以这可能是它目前没有被击中的另一个原因。它甚至可以在适当的时候运行。
答案 1 :(得分:0)
您正尝试在部分类中覆盖相同的方法。
而不是创建部分类从CMSPages_PortalTemplate继承你的cumtom类