2011-01-26 114 views
1

我已經創建了一個長字符串自定義屬性,它爲我提供了一個XHTML編輯器。到目前爲止這麼好,但我需要兩件事情的幫助。在自定義屬性上設置默認值

首先,我想填充屬性的默認值。我已經看過一些關於這個博客文章,但似乎無法做到。

其次,我想呈現自定義屬性作爲可以容納一個大字符串的常規textbox

public class CustomerTypeBoxControl : 
    EPiServer.Web.PropertyControls.PropertyLongStringControl 
{ 
    protected override void SetupEditControls() 
    { 
     base.SetupEditControls();        
    } 

    public CustomerTypeBox CustomerTypeBox 
    { 
     get 
     { 
      return PropertyData as CustomerTypeBox; 
     } 
    } 
} 

[Serializable] 
[PageDefinitionTypePlugIn] 
public class CustomerTypeBox : EPiServer.Core.PropertyLongString 
{ 
    public override IPropertyControl CreatePropertyControl() 
    { 
     return new CustomerTypeBoxControl(); 
    } 
} 
+0

當您將屬性添加到頁面時,是否爲您提供了禁用所有豐富的編輯器功能(如粗體和斜體)的選項?如果你把它們全部關閉,你只需要一個很長的字符串編輯器。 – 2011-01-26 14:24:47

回答

0

不知道這是否是相關的鋼鐵,但這裏是解決方案:

TextBox _textBox; 
protected override void SetupEditControls() 
{ 
    base.SetupEditControls(); 

    _textBox = (TextBox)EditControl; 
    var value = CustomerTypeBox.Value ?? string.Empty; 
    if (String.IsNullOrEmpty(value.ToString())) 
    { 
     _textBox.Text = "Default text"; 
    } 
    else 
    { 
     _textBox.Text = value.ToString(); 
    } 
    if (_textBox != null) EditControl.Parent.Controls.Add(_textBox); 
} 

public override void ApplyEditChanges() 
{ 
    var customerTypeBoxValue = _textBox.Text; 

    if (customerTypeBoxValue != null) 
    { 
     SetValue(customerTypeBoxValue); 
    } 
} 

財產默認值,也可以在管理模式進行設置。