2010-06-25 9 views
1

J'ai une page asp.net avec des onglets JQuery. Tout fonctionne bien. J'ai ajouté une liste déroulante dans l'un des onglets, qui provoque une publication. Après la publication, je veux que le même onglet soit sélectionné.Sélection de l'onglet Jquery sur asp.net postback

J'initialize les onglets:

<script type="text/javascript"> 
    $(document).ready(function() { 
    var $myTabs = $(".tabsDiv").tabs(); 
</script> 

Ensuite, l'événement PageLoad, j'injectent un script pour sélectionner l'onglet:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "TabSelect", "$myTabs.tabs('select', 1);", true); 

Pour une raison quelconque, cela ne fonctionne pas. Le script est en cours d'exécution mais les onglets ne sont pas sélectionnés. Est-ce parce que RegisterClientScriptBlock place le script au bas de la page et, pour une raison quelconque, il s'exécute trop tard?

Toute aide est appréciée. Thx à l'avance

Répondre

2

Appel de $ myTabs.tabs ('select', 1); Je pense que les résultats dans une erreur. $ myTabs n'est pas une variable globale. Son étendue est seulement dans $ (document) .ready (function() {...}); Pouvez-vous essayer avec $ (". TabsDiv"). Tabs ('select', 1); et voir si ça marche?

Cordialement ...

+0

Non, l'onglet n'est pas sélectionné. Si je mets cette ligne directement dans le script inclus dans la section head, cela fonctionne. S'il est injecté dans le PageLoad rien ne se passe. Je ne comprends pas ... – Dante

+0

L'utilisez-vous dans un UpdatePanel? Parce que c'est une autre histoire. – Padel

+0

Pas de panneaux de mise à jour .... En résumé, sur la section l'onglet est initialisé, comme j'écris dans le texte de la publication, et dans le cas où le ddl provoque une publication, j'ajoute un autre script, comme vous l'avez posté. – Dante

1

Il pourrait courir trop tôt ... en bas de la page est bonne, essayez ceci:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "TabSelect", 
    "$(document).ready(function() { $myTabs.tabs('select', 1); });", true); 

Fondamentalement, il gère également ce code à l'événement prêt.

+0

Comme il est dit dans l'autre commentaire, il donne une erreur JS sur la variable non existante ... – Dante

+0

Désolé, n'a pas vu quoi que ce soit sur une erreur variable non existant ... don N'utilisez pas alors $ myTabs, mais appelez $ (". tabsDIV"). tabs ('select', 1); puis; c'est comme ça que vous utilisez les plugins quand même ... –