如何使用模板实现数据绑定控件?

时间:2010-01-25 00:12:22

标签: c# asp.net controls data-binding

我想实现一个非常简单的列表控件。它有2个属性:

  1. RowTemplate(ITemplate)
  2. DataSource(IList)
  3. 控件实现必须使用RowTemplate中指定的模板传递每一行,并传递DataSource列表中的相应对象,这样,如果我在传递的属性中有一个名为Name的属性对象,可以通过Eval("Name")访问它。

    我想要一个如何使用RowTemplate呈现控件以及如何将对应的DataSource对象传递给模板的示例。


    我正在阅读有关该主题的MSDN文档:Data Binding Expression OverviewBinding to Databases但我找不到如何实现将对象传递给模板的控件。

1 个答案:

答案 0 :(得分:3)

听起来你正在尝试开发一个模板化的数据绑定控件。

基本上,您只需要在渲染主控件期间迭代数据源对象。对于数据源中的每个项目,创建模板容器对象的新实例并将其添加到容器控件中。根据您要扩展的内容,实际的渲染方法可能会有所不同,但如果您要扩展BaseDataList之类的内容,则可以在“CreateControlHeirarchy()”中进行扩展。

您可以查看一些演练。 Here's a pretty straightforward one