我创建了一个longstring自定义属性,它给了我一个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 :(得分: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);
}
}
属性的默认值也可以在管理模式下设置。