自定义 GridViewTemplateColumn 或 ContentTemplate 和 EditTemplate?
Custom GridViewTemplateColumn or ContentTemplate and EditTemplate?
是否可以创建一个内容和编辑模板以插入到 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"
});
您可以创建自己的列类型。
创建一个继承自 GridViewColumn
的 class。
覆盖 CreateControls
、CreateEditControls
和 CreateInsertControls
并在单元格内构建控件树。
如果你想制作一个多行编辑单元格,你可以修改default GridViewTextColumn - 只需在CreateEditControls
方法中将Type
设置为MultiLine
即可。
- 然后你需要register the control在
DotvvmStartup
.
是否可以创建一个内容和编辑模板以插入到 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"
});
您可以创建自己的列类型。
创建一个继承自
GridViewColumn
的 class。覆盖
CreateControls
、CreateEditControls
和CreateInsertControls
并在单元格内构建控件树。
如果你想制作一个多行编辑单元格,你可以修改default GridViewTextColumn - 只需在CreateEditControls
方法中将Type
设置为MultiLine
即可。
- 然后你需要register the control在
DotvvmStartup
.