1
我想使用asp:Panel和asp:TreeView製作選項卡式用戶界面。我保持兩個TreeViews在後臺初始化,當我需要顯示一個,我清除面板,然後添加適當的TreeView。System.Web.UI.Controls.ControlCollection.Add引發ArgumentOutOfRangeException
我保持TreeView存儲在Session變量中,以便在由於回發而重新加載頁面時它們不會消失。
但是,當我嘗試添加控件,我得到一個ArgumentOutOfRangeException。這裏有一小段代碼很重要:
<asp:UpdatePanel UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:LinkButton ID="ContentButton" OnClick="ContentButton_Click" Text="Contents" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel UpdateMode="Conditional" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ContentButton" />
</Triggers>
<ContentTemplate>
<div id="TOCPanel" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
下面是C#文件中的相關代碼。
protected void IndexButton_Click(object sender, EventArgs e)
{
TOCPanel.Controls.Clear();
// _TreeView points to a property that retrieves the TreeView from Session["TreeView"]
TOCPanel.Controls.Add(_TreeView); // This line fails
// TOCPanel.Controls.Add(new TreeView()); // This fails with the same error message too
}
是否有任何理由
當使用 而不是div時,你會得到同樣的錯誤嗎? –
2010-06-30 16:00:25
它做同樣的事情。但它似乎只在我改變控制時崩潰。所以在初始化時,我在頁面加載期間添加了第一個TreeView。我按下按鈕後,我正在更換控件,並且崩潰。如果我按下當前加載的按鈕,它不會崩潰。 – 2010-06-30 16:37:28