2009-12-10 4 views
0

Je crée un CompositeControl dans VB ASP.NET.Définir ActiveTabIndex sur Ajax TabContainer dans CompositeControl

Mon contrôle a un Ajax TabContainer avec plusieurs TabPanels. J'ai besoin de le coder pour qu'une valeur sur la chaîne de requête puisse définir l'ActiveTab du conteneur.

Quelle que soit la partie de requête querystring de ce problème, dans mon code CreateChildControl, je définis l'ActiveTabIndex sur une position d'index valide, mais l'interface utilisateur a toujours l'index 0 comme actif.

Des conseils? De l'aide?

Répondre

0

Pour nous, spécifiquement, nous avons codé le Javascript nécessaire pour nous aider à traverser cela. La page affichée avait un TabContainer. Sur le premier onglet (l'onglet activement affiché), nous avons eu des descriptions de chaque onglet, puis un lien vers eux. Cliquez sur le lien pour activer l'onglet. Voici ce qu'un membre de l'équipe a fait.

Sur le lien hypertexte, un attribut "OnClick" a été ajouté à une nouvelle méthode JavaScript appelée "ChangeTab". Passez dans la méthode un numéro d'index arbitraire pour donner unique aux différents onglets et client du contrôle onglet id

Au cours de pré render de l'ASP.NET, nous avons ce morceau de code

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 

Le résultat final est Scripting client qui activera l'onglet lorsque le lien est cliqué.

Questions connexes