Question

Ok, j'ai une table, faite par un GridView et un attaché tablesorter à lui, il fonctionne très bien.

Alors je l'ai mis dans un UpdatePanel, et a ajouté le code pour lier de nouveau sur un postback, voici mon 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(); });
    }
}

Ce qui fonctionne très bien, je charge le gridview, les travaux de tri.

  • je clique sur un bouton qui messages en arrière, cela fonctionne très bien.
  • je clique nouveau et le premier clic fonctionne pour trier, les trier, mais il se coince - il - je peux modifier les colonnes, mais il ne sera jamais sort? Mais ...
  • Je clique à nouveau, et il fonctionne très bien

continue, travailler tous les autres, cliquez sur ... des idées?

Était-ce utile?

La solution

Votre problème semble comme un problème côté serveur - le genre fonctionne uniquement après la table a été lié dans la même demande. Sinon, le branchement d'événements pour le genre ne peut pas trouver quoi que ce soit.

Bien sûr - si vous avez déjà lié la table, il a déjà été triée - maintenant vous devez obtenir à nouveau les données

.

Ce genre de problème est un problème commun avec le modèle d'événement page .Net horribles.

est de solution la plus simple vous assurer que votre table est sur le rebond ajax postback après viewstate a été chargé mais avant le feu des événements, puis obtenir à nouveau les données après l'événement a tiré. Le problème est que vous avez vos données deux fois.

Une meilleure solution est d'éviter d'utiliser l'événement de .Net branchements dans tous les éléments de la page dynamique.

Ces types de problèmes avec le modèle d'événement page .Net fait partie de la raison pour laquelle il y a tant d'intérêt dans MVC.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top