DataList未从我的webusercontrol加载到我的aspx页面中

时间:2014-05-08 16:40:04

标签: c# asp.net webusercontrol

我有一个Web用户控件,看起来像这样

的.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);

我的问题是,当我将webuserControl加载到原始内容页面时,我们将其称为default.aspx / default.cs,它抓住了我有“REPORT DATALIST”的标签,它显示了 - 很酷。但是,它抓住了数据主义者,它是空的。包含没有数据,即使我给它一个数据源并在.cs

中数据绑定

我之前没有使用过这样的webusercontrols所以有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

我修复了自己的问题,实际上我将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!