2011-01-26 105 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); 
    } 
} 

财产默认值,也可以在管理模式进行设置。