2012-01-20 253 views
2

我試圖讓其他使用ASP.NET和AJAX控件工具包內的控制選項卡,這是我使用的代碼:嵌套ASP.NET標籤

<asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0"> 
    <asp:TabPanel runat="server" HeaderText="Main tab" ID="TabPanel1"> 
     <ContentTemplate> 
       <asp:TabPanel HeaderText="Nested tab" ID="TabPanel2" runat="server"> 
         <ContentTemplate> 
          <asp:Button ID="Button1" runat="server" Text="Delete" /> 
         </ContentTemplate> 
       </asp:TabPanel>    
     </ContentTemplate> 
     </asp:TabPanel> 
    </asp:TabContainer> 

,但我得到一個異常說即:

「對象引用未設置爲對象的實例」。

我不知道該怎麼做,因爲我的設計需要在另一個內部有一個標籤面板,這可能嗎?

+0

該異常必須來自後面的代碼。我們可以看到拋出異常的代碼嗎? –

+0

嗨,謝謝發佈,後面的代碼是空的......只有頁面加載事件在那裏,但沒有實現。引發此異常的代碼來自AjaxControToolkit,它說:「> \t AjaxControlToolkit.DLL!AjaxControlToolkit.TabPanel.OnInit(System.EventArgs e = {System.EventArgs})」併發生上述異常。 – Mircea

回答

4

嵌套<asp:TabPanel>應該在它自己的<asp:TabContainer>,這可能是什麼例外:對象引用可能是容器,並且它沒有設置爲實例,因爲它對於嵌套選項卡是缺少的。

<asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0"> 
    <asp:TabPanel runat="server" HeaderText="Main tab" ID="TabPanel1"> 
    <ContentTemplate> 

     <%-- You need another container before you can add a nested tab --%> 
     <asp:TabContainer ID="NestedContainer1" runat="server"> 
     <asp:TabPanel HeaderText="Nested tab" ID="TabPanel2" runat="server"> 
      <ContentTemplate> 
      <asp:Button ID="Button1" runat="server" Text="Delete" /> 
      </ContentTemplate> 
     </asp:TabPanel> 
     </asp:TabContainer> 
     <%-- End of the second container --%> 

    </ContentTemplate> 
    </asp:TabPanel> 
</asp:TabContainer>