Estoy usando las pestañas jQuery y una vista de lista ASP.NET para mostrar y editar cierta información. Mi problema es que cuando un usuario inserta un nuevo registro en uno de los elementos de la vista de lista, mis pestañas jQuery vuelven a la primera pestaña. ¿Hay alguna manera de mantener un registro de la pestaña en la que estoy o de dejar que repose en la publicación posterior?¿Permaneciendo en la pestaña actual de jQuery en la publicación posterior?
Respuesta
En asp.net se puede almacenar en un campo oculto y sin tener que usar una cookie (sin necesidad de la referencia de galletas jQuery).
Utilice esta:
$(function() {
$("#tabs").tabs({
activate: function() {
var selectedTab = $('#tabs').tabs('option', 'active');
$("#<%= hdnSelectedTab.ClientID %>").val(selectedTab);
},
active: <%= hdnSelectedTab.Value %>
});
});
Luego, en el cuerpo, declaran su campo pestaña oculta:
<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" />
Básicamente, en la selección de una ficha que está almacenando el valor de la ficha seleccionada en el asp oculta campo. Luego, en show, está recuperando el valor.
Solo como referencia, en las versiones más recientes de jQuery UI, el 'show' /' selected' ya no funciona. En su lugar, use 'activate' y' active'. –
Es mejor reemplazar el código: active: <% = hdnSelectedTab.Value%> con active: $ ("# <% = hdnSelectedTab.ClientID%>"). Val(). De lo contrario, tendrá problemas al tener UpdatePanel. – ZooZ
Después de reemplazar 'opción', 'seleccionado' con 'opción', 'activo' y usando active: $ ("# <% = hdnSelectedTab.ClientID%>"). Val() como se menciona por @ZooZ esto funcionó bien para mí . –
Hay built-in support para jQuery cookie plugin (direct download). Lo usa así:
$("#tabs").tabs({
cookie: { expires: 7 } //1 week
});
No es lo mismo que mantener en la devolución de datos, pero generalmente proporciona el efecto deseado.
Usted puede obtener la ficha actual al hacer esto:
var selected = $tabs.tabs('option', 'selected');
A continuación, puede seleccionar la pestaña (una vez completada la POST) al hacer esto:
$tabs.tabs('select', selected);
Tenga en cuenta que la selección de etiqueta es Indización basada en 0, por lo que seleccionar 2 significa seleccionar la tercera pestaña.
No soy un chico de .NET, pero probablemente pueda enganchar en el evento submit() del formulario y enviar la pestaña actualmente activa al servidor con sus datos de formulario. De esa manera, puede simplemente seleccionar la pestaña adecuada en el lado del servidor cuando realmente genera DOM y JS.
Algo así como ...
$("#the_form").submit(function(){
var $form = $(this);
selected_tab_idx = $("#the_tabs").tabs("option", "selected");
$('<input />', {type: hidden, name: 'tab_index', value: selected_tab_idx}).appendTo($form);
return true;
});
Con las nuevas versiones de jQuery y jQuery UI, esto será:
$(function() {
$("#tabs").tabs({
activate: function() {
var selectedTab = $('#tabs').tabs('option', 'active');
$("#<%= hdnSelectedTab.ClientID %>").val(selectedTab);
},
active: document.getElementById('<%= hdnSelectedTab.ClientID %>').value
});
});
La opción 'selected' se sustituye por 'activa' ... Por supuesto que todavía tendrá que añadir el campo oculto:
<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" />
Esta solución funcionó para mí: Fuente http://saradesh.com/tajuddin/index.php/keep-the-selected-jquery-tab-active-on-partial-post-back-in-asp-net/
<script type="text/javascript">
var selTab;
$(function() {
var tabs = $("#tabs").tabs({
show: function() {
//get the selected tab index
selTab = $('#tabs').tabs('option', 'selected');
}
});
});
function pageLoad(sender, args) {
if (args.get_isPartialLoad()) {
$("#tabs").tabs({show: function() {
//get the selected tab index on partial postback
selTab = $('#tabs').tabs('option', 'selected');
}, selected: selTab });
}
};
</script>
Try esto:
añadir a la página:
<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" />
Añadir a la secuencia de comandos:
$(function() {
var activeIndex = parseInt($get("hdnSelectedTab").value);
$("#tabs").tabs({
active: activeIndex,
activate: function (event, ui) {
$get("hdnSelectedTab").value = ui.newTab.index();
}
});
});
Creo que es mejor usar $ ("# <% = hdnSelectedTab.ClientID%>") –
- 1. asp.net mvc y css: Tener la pestaña del menú permaneciendo resaltada en la selección
- 2. Desactivar botones en la publicación posterior usando jquery en la aplicación .net
- 3. imprime la pila posterior actual en el registro
- 4. resaltar tanto la página como la pestaña correspondiente en jquery
- 5. Cambiando pestaña actual en Rails
- 6. relleno en la pestaña jQuery UI
- 7. Distinga el enlace abierto en la pestaña actual frente a la nueva pestaña
- 8. SwitchToThisWindow envía la ventana actual a la parte posterior
- 9. Obteniendo la ID de publicación de WordPress de la publicación actual
- 10. ¿jQuery envía cookies en una publicación?
- 11. Usando jQuery, ¿cómo desactivo el efecto de clic en la pestaña actual?
- 12. vim - ¿cómo cerrar todos los buffers en la pestaña actual?
- 13. cómo obtener la pestaña actual de la página de fondo
- 14. Comprueba si la pestaña actual está vacía en vim
- 15. jQuery UI Autocompletar: ¿Desactiva la finalización de la pestaña?
- 16. Cambiar la pestaña actual de la notificación en la extensión de Google Chrome
- 17. Abra una nueva pestaña con javascript, pero quédese en la pestaña actual
- 18. La pestaña IU de Jquery no funciona en AngularJS
- 19. ¿Cómo eliminar la fila actual de la tabla en jQuery?
- 20. jquery recibiendo url de acción posterior
- 21. Navega a una nueva página sin poner la página actual en la pila posterior?
- 22. Pestañas jQuery seleccionando la pestaña específica
- 23. Acceso al objeto DOM de la pestaña actual desde "popup.html"?
- 24. jQuery UI autocompletar: ¿cómo enviar datos de la publicación?
- 25. Alinear una pestaña a la derecha en JQuery UI
- 26. Seleccionar una pestaña jQuery usando un parámetro en la URL
- 27. conseguir la versión en posterior a la generación de Nuget
- 28. Recibir una notificación cuando se selecciona la pestaña actual nuevamente
- 29. posterior Jquery a la acción con el diccionario de parámetros
- 30. Jquery Publicación de AJAX en PHP
¿Cómo puedo aplicar esto a mi código favor .. https: // stackoverflow.com/q/48215218/4233410 –