我的CompositeDataBoundControl有什么问题?

时间:2011-08-21 13:57:42

标签: asp.net user-controls webforms asp.net-4.0

我有一个CompositeDataBoundControl定义如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ReportSection.ascx.cs" Inherits="WebReports.ReportSection" %>
<div class="report-section span-24">
    <h3>
        <%= Title %></h3>
</div>

public partial class ReportSection : CompositeDataBoundControl
{
    public string Title { get; set; }
    protected override int CreateChildControls(IEnumerable dataSource, bool dataBinding)
    {
        //throw new NotImplementedException();
        return 1; // JUst something to avoid exceptions.
    }
}

然而,当我尝试加载包含此控件的Web表单时,我收到以下解析器错误:

这里不允许使用'WebReports.ReportSection',因为它没有扩展类'System.Web.UI.UserControl'。

这对我来说似乎很奇怪,因为我觉得CompositeDataBoundControl是用作用户控件的基类,还是仅用于服务器控件?

1 个答案:

答案 0 :(得分:0)

它适用于服务器控件,而不是UserControls。 UserControls更类似于Pages而不是其他控件(都从TemplatedControl继承)。

您可以从MSDN description for CompositeDataBoundControl看到它并非真正用于用户控件:

  

表示表格数据绑定控件的基类   由其他服务器控件组成。