DataList не загружается на моей странице aspx из моего webusercontrol

У меня есть пользовательский веб-элемент управления, который выглядит следующим образом

.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="HtmlReport.ascx.cs" Inherits="HtmlReport" %>

<asp:Label runat="server" Text="REPORT DATALST" />
<asp:DataList runat="server" ID="DataListNames">

    <ItemTemplate>
        <table>
            <tr>
                <td>
                    <asp:Label runat="server" Text='<%# Eval("CustomerName") %>' />
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label runat="server" Text='<%# Eval("ProjectName") %>' />
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label runat="server" Text='<%# Eval("LastName") %>' /><p>, </p>
                    <asp:Label runat="server" Text='<%# Eval("FirstName") %>' />
                </td>
            </tr>
        </table>
        <asp:DataList runat="server" ID="DataListHours">
            <ItemTemplate>
                <table>
                    <tr>
                        <asp:Label runat="server" Text='<%# Eval("HoursWorked") %>' />
                    </tr>
                </table>
            </ItemTemplate>
        </asp:DataList>
    </ItemTemplate>
    <FooterTemplate>
        <asp:Label runat="server" Text="Total Hours " /><asp:Label runat="server" Text='<%# Eval("TotalHoursWorked") %>' />
    </FooterTemplate>
</asp:DataList>

.cs

        protected void Page_Load(object sender, EventArgs e)
    {

    }

    public void GenerateReport(IList<DataObjects.Fixedfeereport> FixedFeeReports)
    {
        DataListNames = new DataList();
        DataListNames.DataSource = FixedFeeReports;
        DataListNames.DataBind();
    }

и на моей странице контента.cs

                HtmlReport rpt = new HtmlReport();
            rpt.GenerateReport(Reports);
    //Reports is a data object that holds all the fields from the webusercontrol datalist, ex: CustomerName, ProjectName, FirstName, LastName, etc....

            Control test = Page.LoadControl("HtmlReport.ascx");
            PanelReport.Controls.Add(test);

Моя проблема в том, что когда я загружаю свой web user Control на свою исходную страницу содержимого, давайте назовем его default.aspx / default.cs, он захватывает метку, которая у меня есть "REPORT DATALIST", и отображает это - круто. Но он захватывает даталист и пуст. Не содержит данных, хотя я даю им источник данных и привязываю их в.cs

Я не работал с подобными веб-контроллерами, поэтому кто-нибудь может указать мне правильное направление?

1 ответ

Я исправил свою собственную проблему, фактически переместил webusercontrol на страницу aspx из обозревателя решений, перетащил его и уронил. Который дал мне это в верхней части моего default.aspx

<%@ Register Src="~/HtmlReport.ascx" TagName="Report" TagPrefix="R"  %>
<%@ Reference VirtualPath="~/HtmlReport.ascx" %>

и это в моей панели я бросил его.

<R:Report ID="Report1" runat="server" />

я изменил свой contentpage.cs, чтобы выглядеть так,

Report1.GenerateReport(Reports);

и наконец я удалил

DataListNames = new Datalist();

в моем webusercontrol.cs, и он работает и отображает мой datalist!

Другие вопросы по тегам