2009-12-10 71 views
0

我在VB ASP.NET中創建一個CompositeControl。在CompositeControl中的Ajax TabContainer上設置ActiveTabIndex

我的控件有一個帶有幾個TabPanel的Ajax TabContainer。我需要對它進行編碼,以便querystring上的值可以設置容器的ActiveTab。

不管這個問題的查詢字符串部分,在我的CreateChildControl代碼中,我將ActiveTabIndex設置爲有效索引位置,但UI仍具有索引0作爲活動。

任何提示?任何幫助?

回答

0

對我們來說,具體來說,我們編寫了使我們通過這個所需的Javascript代碼。顯示的頁面有一個TabContainer。在第一個選項卡(主動顯示的選項卡)上,我們對每個選項卡進行了說明,然後是對其的鏈接。點擊鏈接會使選項卡激活。這是一名團隊成員所做的。

在超鏈接上,將「OnClick」的屬性添加到我們稱爲「ChangeTab」的新JavaScript方法。傳遞到方法的任意索引號給唯一不同的標籤和標籤控件的客戶端ID

在ASP.NET的預渲染,我們有這段代碼

Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs) 
     MyBase.OnPreRender(e) 

     Dim script As New System.Text.StringBuilder() 

     script.AppendLine("<script type=""text/javascript"">") 
     script.AppendLine("//<![CDATA[ ") 
     script.AppendLine("function ChangeTab(num,tabContainer) {") 
     script.AppendLine(" var container = $find(tabContainer);") 
     script.AppendLine(" container.set_activeTabIndex(num);") 
     script.AppendLine("}") 
     script.AppendLine("//]]>") 
     script.AppendLine("</script>") 

     Page.ClientScript.RegisterClientScriptBlock(GetType(myPageOrControl), " ChangeTab", script.ToString) 
    End Sub 

最終的結果是客戶端腳本將在鏈接被點擊時將選項卡設置爲活動狀態。

相關問題