我有一个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是用作用户控件的基类,还是仅用于服务器控件?
答案 0 :(得分:0)
它适用于服务器控件,而不是UserControls。 UserControls更类似于Pages而不是其他控件(都从TemplatedControl继承)。
您可以从MSDN description for CompositeDataBoundControl看到它并非真正用于用户控件:
表示表格数据绑定控件的基类 由其他服务器控件组成。