我有一个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所以有人能指出我正确的方向吗?
答案 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!