如何在AjaxControlToolKit TabContainer中查找Web控件

时间:2014-05-28 02:38:20

标签: c# asp.net ajax ajaxcontroltoolkit tabcontrol

我正致力于动态生成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();
}

1 个答案:

答案 0 :(得分:0)

我认为你需要把你的findpanel()放在Page_init和Page_load上。