【发布时间】:2018-03-14 23:25:28
【问题描述】:
是否可以创建要插入到 GridViewTemplateColumn 中的内容和编辑模板,以便人们可以重复使用它而不是将模板重复插入到其 html 中?
我有大约 15 个列,它们都需要类似的功能(在内容阶段有文本,在编辑时有一个多行文本框),并且使用模板列可以正常工作。
但是,如果我想更改模板,我需要全部更改。
从创建自定义控件到扩展模板列,我已经尝试了所有我能想到的方法,但我可能对 DotVVM 了解得不够多。
任何帮助将不胜感激。
解决了!解决方案如下。
public class MultiLineTextColumn : GridViewTextColumn
{
public override void CreateEditControls(IDotvvmRequestContext context, DotvvmControl container)
{
var textBox = new TextBox();
textBox.FormatString = FormatString;
textBox.ValueType = ValueType;
textBox.SetBinding(TextBox.TextProperty, GetValueBinding(ValueBindingProperty));
textBox.Type = TextBoxType.MultiLine;
container.Children.Add(textBox);
}
}
在 DotvvmStartup.cs 中
config.Markup.Controls.Add(new DotvvmControlConfiguration
{
TagPrefix = "cc",
Namespace = "Project.Controls",
Assembly = "Project"
});
【问题讨论】:
-
我认为使用自定义控件可能是正确的方法。你能告诉我们你尝试了什么吗?我宁愿不发布整个解决方案。