2010-08-05 41 views

回答

2

您可以使用ASP.NET AJAX Control Toolkit它有一個完全可配置的選項卡控件,不會回發。

+0

感謝斯科特,我使用AjaxCotnrolToolkit和我的代碼是這樣的 對於i = 0到4 昏暗tbpanel作爲新AjaxControlToolkit.TabPanel() tbpanel.HeaderText = 「文本標籤」 tbpanel.ID = 「標籤」 tbpanel.Controls.Add(新的文本框()) TabContainer1.Tabs.Add(tbpanel) Next i 但當我運行我的應用程序它不顯示任何東西在網頁上。 – user412260 2010-08-05 18:23:56

+1

@ user412260:確保您在Page_PreInit中動態創建面板,而不是Page_Load或Page_Init。原因是TabContainer的OnInit會先於Page_Load或Page_Init觸發。正因如此,如果您在PreInit之後將面板添加到容器中,它們將不會顯示在您的頁面上。 – 2010-08-05 18:58:32

+0

@ user412260:你的標籤面板也都有相同的ID,所以你需要做一些類似tbpanel.ID =「Tab」+ i.ToString()。讓選項卡面板具有相同的ID將會阻止顯示選項卡。 – 2010-08-05 19:10:53

0

當然,這是可能的。但要記住的關鍵是標籤的內容必須來自某個地方。如果更換標籤時,你不發送回發,你就必須做兩件事情之一:

  1. 發送內容爲所有選項卡每個請求。從字面上看,這可能是很昂貴的—。這可能意味着帶寬成本將數據發送到大多數用戶可能永遠看不到的線路上。另一方面,如果用戶在每次訪問時訪問大多數標籤,這將是一條路。你知道你的應用和你的用戶,我們不知道,所以這是你必須做出的決定。
  2. 使用ajax請求檢索每個選項卡的數據。這使用更少的帶寬,但如果你正在用webforms思考它會變得混亂。它推動你進入動態控制領域,並有龍。再一次,如果你對所有的Ajax請求和動態控制感到滿意,這對你來說可能是一個完美的解決方案,但只有你能知道。

我會做的是給每個標籤自己的aspx頁面,以便切換標籤實際上加載一個新的頁面。我也可能使用母版頁來保持外觀和感覺一致。這意味着仍然爲每個選項卡做一個回傳,但它以更簡潔的方式完成。

相關問題