Frage

Ok, ich habe eine Tabelle, die von einem Gridview gemacht, und eine tablesorter daran befestigt, es funktioniert gut.

Dann habe ich es in einem Update, und hinzugefügt, um den Code, um es auf einem Postback erneut zu binden, hier ist mein Skript:

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(); });
    }
}

Welche funktioniert super, lade ich die Gridview, Werke zu sortieren.

  • Klicken Sie ich eine Schaltfläche, die Beiträge zurück, es funktioniert gut.
  • I klicken Sie auf wieder und der erste Klick funktioniert zu sortieren, es Sortierung, aber es stecken bleibt - dort - ich Spalten ändern kann, aber es wird nie sort? Aber dann ...
  • I klicken Sie erneut auf, und es funktioniert gut

Dies setzt sich auf, jeden zweiten Klick ... irgendwelche Ideen zu arbeiten?

War es hilfreich?

Lösung

Ihr Problem klingt wie ein Server-Seite Problem - die Art funktioniert nur, nachdem die Tabelle in der gleichen Anfrage gebunden wurde. Andernfalls wird das Hook-up für die Art nichts finden können.

Natürlich - wenn Sie bereits die Tabelle gebunden haben, ist es bereits sortiert worden - so jetzt müssen Sie die Daten wieder bekommen

.

Diese Art von Problem ist ein häufiges Problem mit dem schrecklichen .Net Seite Ereignismodell.

Einfachstes fix ist, um sicherzustellen, dass Ihr Tisch ist auf dem Ajax-Postbacks Rebound nach Ansichtszustand geladen ist, aber vor Feuer Ereignissen, die Daten dann bekommen wieder, nachdem das Ereignis ausgelöst hat. Das Problem ist, dass dann haben Sie Ihre Daten bekommen zweimal.

Eine bessere Lösung ist, mit .Net Hook-ups in allen dynamischen Seitenelementen zu vermeiden.

Diese Art von Problemen mit dem .Net Seite Ereignismodell ist Teil der Grund, es in MVC so viel Interesse ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top