2013-08-19 64 views
0

我想爲從Sitecore RTF字段(Sitecore.Shell.Applications.ContentEditor.RichText)繼承的Sitecore項目創建自定義字段。該字段將是一個只讀字段,我希望我的代碼在字段加載/顯示時運行,並且我需要覆蓋該值。我所看到的是我的代碼確實運行。但是,當我在Sitecore中查看內容項時,Rich Text字段中不顯示任何內容項。如果我點擊顯示編輯器按鈕或編輯HTML按鈕來查看HTML,我的HTML內容就在那裏。如果我關閉Sitecore彈出窗口並返回到內容項,我現在可以看到我的HTML。問題是,它不顯示我第一次來到屏幕上。我感覺到我並不是重寫基本控制的正確方法。這是我的代碼如何覆蓋Sitecore RichText字段

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); 
    } 
} 

回答

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); 
    } 
}