2009-03-01 11 views
9

sto usando la libreria jquery nel mio progetto. Ho un problema terribile con le schede jquery. Le soluzioni sono che quando ero in terza scheda, postback il mio modulo, schede ricaricate e vai alla prima scheda. sto cercando di risolvere il problema da molto tempo.jquery tabs problema postback

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#example > ul").tabs({ remote: true, cache: true }); 
    });  
</script> 

così come risolvo questo problema? le vostre risposte.

risposta

13

schede possono utilizzare i cookie per memorizzare la scheda corrente. Dai uno sguardo alle schede documentation. Giù nelle Opzioni lista v'è un esempio di come utilizzare i cookie per memorizzare la scheda corrente:

$('.selector').tabs({ cookie: { expires: 30 } }); 

Ciò richiede l'jquery cookies plugin da inserire però.

+0

Per me questa è stata la soluzione migliore e più semplice da implementare. Ho molte schede su tre pagine diverse e le schede mantengono il loro stato tra clic su scheda e postback di pagina. Eccezionale. –

+0

Ah, questa sembra una soluzione perfetta per un problema che sto avendo con le viste parziali nelle schede ... sfortunatamente, il sito web jQuery è stato rimosso a causa di attacchi di spammer pubblicitari, ai collegamenti alla documentazione delle schede e al plug-in dei cookie jQuery non sono disponibili ... – Dronz

24

Lei non ha specificato se si sta utilizzando ASP.NET, ma se siete è possibile memorizzare la scheda attualmente selezionata in un < asp: HiddenField/> invece di un cookie:

<script type="text/javascript" language="javascript"> 
    $(function() { 
     $("#example").tabs({ 
      show: function() { 
       var sel = $('#example').tabs('option', 'selected'); 
       $("#<%= hidLastTab.ClientID %>").val(sel); 
      }, 
      selected: <%= hidLastTab.Value %> 
     }); 
    }); 
</script> 
<asp:HiddenField runat="server" ID="hidLastTab" Value="0" /> 

Se non ASP.NET, probabilmente potresti fare qualcosa di simile.

+1

Questa soluzione ha funzionato perfettamente per me usando ASP.net Grazie !!! –

+0

Questa è una soluzione eccezionale! –

+0

Ho provato molte altre soluzioni senza successo. Questo ha funzionato perfettamente. Grazie mille. –

0

Ho avuto lo stesso problema, fissata aggiungendo la seguente al gestore di eventi di selezione schede jQuery:

$("div.ui-tabs-panel").html(""); 

Si cancella in modo efficace tutti i pannelli esistenti per prevenire la forma di accatastamento.

1

Ho tentato di utilizzare la soluzione pubblicata da joelsand. Tuttavia, le opzioni e gli eventi di jQuery Tabs sono cambiati. La documentazione attuale è http://api.jqueryui.com/tabs/.

Invece dell'evento "mostra", ho utilizzato l'evento "attivato". Invece dell'opzione "selezionata", ho usato l'opzione "attiva". Invece di un campo nascosto, ho usato una variabile JavaScript (dichiarata all'esterno di UpdatePanel)

+0

Il nome dell'evento è ** activate ** (non "attivato"). – fortboise