Что не так с моим CompositeDataBoundControl? - PullRequest
0 голосов
/ 21 августа 2011

У меня есть 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.
    }
}

Тем не менее, когда я пытаюсь загрузить веб-форму, содержащую этот элемент управления, я получаю следующую ошибку синтаксического анализатора:

'WebReports.ReportSection'здесь не разрешено, потому что он не расширяет класс' System.Web.UI.UserControl '.

Мне это кажется очень странным, потому что у меня сложилось впечатление, что CompositeDataBoundControl предназначен в качестве базового класса для пользовательских элементов управленияили это возможно только для использования с серверными элементами управления?

1 Ответ

0 голосов
/ 22 августа 2011

Он предназначен для серверных элементов управления, а не для пользовательских элементов управления. UserControls больше похожи на Pages, чем на другие элементы управления (оба наследуются от TemplatedControl).

Из описания MSDN для CompositeDataBoundControl видно, что оно не предназначено для пользовательских элементов управления:

Представляет базовый класс для табличного элемента управления с привязкой к данным, который состоит из других серверных элементов управления.

...