Pregunta

Ok, tengo una mesa, hecha por un GridView, y adjunto una tablesorter a ella, funciona muy bien.

Luego lo puse dentro de un UpdatePanel, y añade el código para volver a enlazar en una devolución de datos, aquí está mi script:

function loadEvents() { $("table[id$='gv']").tablesorter(); }
$(document).ready(function() { loadEvents(); });
function reBind() {
    if (Sys.WebForms.PageRequestManager) {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function() { loadEvents(); });
    }
}

Lo que funciona muy bien, me carga el gridview, clasificación obras.

  • hacer clic en un botón que postes traseros, que trabaja muy bien.
  • hago clic en más y la primera posición funciona para ordenar, clasificar hacia arriba, pero se atasca - no - puedo cambiar las columnas, pero nunca se sort? Pero entonces ...
  • hago clic de nuevo, y funciona bien

Esto continúa, trabajando cada dos clic ... alguna idea?

¿Fue útil?

Solución

Su problema suena como una edición del lado del servidor - el tipo sólo funciona después de que la tabla se ha atado en la misma petición. De lo contrario, el evento en circuito para el tipo no puede encontrar nada.

Por supuesto - si ya ha atado la tabla ya ha sido ordenadas - por lo que ahora usted tiene que obtener los datos de nuevo

.

Este tipo de problema es un problema común con el modelo de eventos de la página .Net horrible.

solución más simple es para asegurarse de que su mesa es de rebote en la devolución de datos Ajax después de estado de vista se ha cargado pero antes de los eventos de fuego, a continuación, obtener los datos de nuevo después de que el evento ha disparado. El problema es que entonces tienes sus datos dos veces.

Una mejor solución es evitar el uso de .Net eventos gancho-ups en cualquier elementos de página dinámica.

Estos tipos de problemas con el modelo de eventos de la página .Net es parte de la razón por la que hay tanto interés en MVC.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top