【发布时间】:2010-04-24 12:49:07
【问题描述】:
我发现为 FormView 的每个 EditItemTemplate、InsertItemTemplate 和 ItemTemplate 模板重复一组控件既繁琐又冒险,就复制布局和代码等而言。我更愿意创建一个 xxxDetails 用户控件,并且在每个模板中使用它,将布局和代码位置缩减到一个位置。
但是,这为数据绑定方案带来了一些复杂性。是否有在这些场景中使用用户控件的具体模式或实践指南?
【问题讨论】:
我发现为 FormView 的每个 EditItemTemplate、InsertItemTemplate 和 ItemTemplate 模板重复一组控件既繁琐又冒险,就复制布局和代码等而言。我更愿意创建一个 xxxDetails 用户控件,并且在每个模板中使用它,将布局和代码位置缩减到一个位置。
但是,这为数据绑定方案带来了一些复杂性。是否有在这些场景中使用用户控件的具体模式或实践指南?
【问题讨论】:
Microsoft 刚刚在 ASP.NET 4.0 中添加了对此非常好的支持。它被称为动态数据。他们在名为EnableDynamicData(type) 的所有数据控件上添加了方法。 ASP.NET 中包含默认模板,但您可以自己制作。
要使用构建的自定义模板,只需在您的文件夹中添加一个 DynamicData/Templates 目录。在其中,您可以为所有数据类型添加类型视图插入和编辑模板。默认模板内置了验证器,因此它们是一个很好的起点!
这是我为using custom controls in DynamicData templates 整理的示例。我用滑块来编辑整数,用 CurrencyInput 来编辑钱等等……
如果您可以使用 ASP.NET 4.0,我强烈建议您这样做。此外,即使您不能,您仍可能希望使用预先构建的模板作为指导。
【讨论】: