2010-08-27 31 views

Respuesta

6

no pude encontrar ninguna manera oficial de hacer esto a través de las API de Telerik, ni ningún consejo útil sobre su foro, así que decidí ir a mi manera con el uso de:

  1. HTML. Telerik(). TabStrip(). clientEvents() tanto el onSelect() y OnLoad()
  2. The cookie plugin for jQuery

Entonces les cableado como abajo, en la vista parcial que contiene el TabStrip.

.ClientEvents(events => events 
.OnSelect(() => 
{ 
    %> 
    function(e) { 
     var item = $(e.item); 
     $.cookie('selectedTabIndex', item.index(), { path: '/' }); 
    } 
    <% 
}) 
.OnLoad(() => 
{ 
    %> 
    function(e) { 
     var tabStrip = $("#TabStrip").data("tTabStrip"); 
     var index = $.cookie('selectedTabIndex'); 
     var domElement = $("li", tabStrip.element)[index]; 
     tabStrip.select(domElement); 
    } 
    <% 
}) 

)

Editar: me di cuenta de que mi respuesta fue poco carente de explicación por lo que he añadido:

En caso de que no es obvio, el onselect es capturar el índice de la pestaña seleccionada cuando se selecciona y escribe que a una cookie llamada selectedTabIndex. La ruta está siendo establecida por lo que abarcará todo nuestro sitio, , pero si lo deja creará una nueva cookie para cada ruta diferente (que puede ser el comportamiento deseado). Alguien más familiarizado con el complemento de cookie jQuery, por favor corrígeme si me equivoco allí, I no lo he usado demasiado.

Luego en el OnLoad está haciendo el enfrente, básicamente. Encuentra el tabStrip, obtiene el índice de la cookie , luego obtiene el dominio de la pestaña en el índice de la cookie y le dice a tabStrip que seleccione ese domElement.

Esto parece funcionar bastante bien en Chrome e IE, pero puede haber algunas peculiaridades en FFox 3.

espero que el equipo de Telerik considera añadir esto a su API, ya que me parece ser una característica muy útil para tener al horno. Disculpas si ya lo es, pero no pude encontrarlo en los documentos.

Cuestiones relacionadas