我想为Sitecore项目创建一个自定义字段,该字段继承自Sitecore Rich Text字段(Sitecore.Shell.Applications.ContentEditor.RichText)。该字段将是一个只读字段,我希望我的代码在加载/显示字段时运行,我需要覆盖该值。我所看到的是我的代码确实运行了。但是,当我在Sitecore中查看内容项时,Rich Text字段中不显示任何内容。如果我单击“显示编辑器”按钮或“编辑HTML”按钮来查看HTML,我的HTML内容就在那里。如果我然后关闭小Sitecore弹出窗口并返回内容项,我现在可以看到我的HTML。问题是它第一次进入屏幕时不会显示。我觉得我没有超越基本控制的正确方法。这是我的代码
public class MyCustomField : Sitecore.Shell.Applications.ContentEditor.RichText
{
protected override void OnLoad(EventArgs e)
{
...insert custom code here to build HTML string...
base.Value = _myHTML;
base.OnLoad(e);
}
}
答案 0 :(得分:1)
我明白了。我压倒了错误的方法。一旦我切换它以覆盖OnPreRender方法它工作正常。代码应如下所示:
public class MyCustomField : Sitecore.Shell.Applications.ContentEditor.RichText
{
protected override void OnPreRender(EventArgs e)
{
...insert custom code here to build HTML string...
this.Value = _myHTML;
base.OnPreRender(e);
}
}