我遇到了嵌套控件无法正确加载的问题。我尝试了各种页面方法,但似乎没有任何效果。
编辑:该站点编译并运行良好-尽管它只是留下一个空白屏幕。
基本上我有一个图表的包装控件,它允许我选择数据、绑定和自定义具有大量抽象的图表。我需要另一个包装器控件,因为可能有我想轻松表示的图表组。
笼统的答案也会很棒。
这就是我所拥有的。我已经用填充物替换了我的自定义属性/属性:
默认.aspx:
<%@ Page Language="C#" CodeBehind="Default.aspx.cs" %>
<%@ Register src="OuterUserControl.ascx" tagname="OuterUserControl" tagprefix="uc2" %>
<uc2:OuterUserControl ID="uc1" runat="server" Att1="foo" Att2="bar" />
外部用户控件.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="OuterUserControl.ascx.cs" Inherits="Proj.OuterUserControl" EnableViewState="false" %>
<%@ Register src="InnerUserControl.ascx" tagname="InnerUserControl" tagprefix="uc1" %>
<div runat="server" id="holder"></div>
OuterUserControl.ascx.cs:
private member variables
Att1
Att2
protected void Page_Load(object sender, EventArgs e)
{
for(int i=0;i<5;i++)
{
InnerUserControl cuc = new InnerUserControl(id);
holder.Controls.Add(cuc);
}
}
内部用户控制.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="InnerUserControl.ascx.cs" Inherits="Proj.InnerUserControl" %>
<asp:Chart ID="chart" runat="server"></asp:Chart>
内部用户控制.ascx.cs:
private int id;
//private member variables
public InnerUserControl(int id)
{
this.id = id;
this.chart = new Chart();
}
protected void Page_Load(object sender, EventArgs e)
{
//Get data for given id
//Databind chart
//etc..
}