我正致力于动态生成WebControl。我有一个带有TabPanel的Ajax TabContainer。 TabPanel包含ContentTemplate。 ContentTemplate内部是一个Asp:Panel。
'当前问题:我正在尝试在ContentTemplate内部的Asp:Panel中添加我动态生成的Web控件。但我无法直接添加动态控件,也无法找到asp面板,因为它总是null
和
对象引用未设置为对象的实例
如何解决这个问题?
我的aspx代码:
<ajaxControlToolKit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> </asp:ToolkitScriptManager>
<ajaxControlToolKit:TabContainer ID="TabContainer1" runat="server" Width ="1178px" VerticalStripWidth="1000px" OnDemand="false" ScrollBars="Vertical" ActiveTabIndex="1" EnableViewState="true" AutoPostBack="true">
<ajaxControlToolKit:TabPanel ID="TabPanel1" runat ="server">
<HeaderTemplate> Upload</HeaderTemplate>
<ContentTemplate>
<asp:Panel ID ="Panel1" runat="server">
</asp:Panel>
</ContentTemplate>
</ajaxControlToolKit:TabPanel>
</ajaxControlToolKit:TabContainer>
我的C#代码:
protected void findpanel()
{
Panel Panel1= TabContainer1.FindControl("TabPanel1").FindControl("Panel1") as Panel;
**//Alwals Null**
TextBox tb = new TextBox();
tb.ID = "TB1";
tb.Text = "Hi";
Panel1.Controls.Add(tb);
**//Object reference not set to an instance of an oject**
}
protected void Page_PreInit(object sender, EventArgs e)
{
findpanel();
}
答案 0 :(得分:0)
我认为你需要把你的findpanel()放在Page_init和Page_load上。