Domanda

Ok, ho una tabella, fatta da un GridView, e attaccato un tablesorter ad essa, funziona bene.

Poi ho messo dentro un UpdatePanel, e ha aggiunto il codice per associare nuovamente su un postback, qui è il mio 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(); });
    }
}

Il che funziona alla grande, io carico il GridView, l'ordinamento opere.

  • fa clic su un pulsante che i posti posteriori, funziona benissimo.
  • clicco nuovo e il primo clic lavora per ordinare, l'ordinamento in su, ma si blocca - lì - posso cambiare le colonne, ma non potrà mai sort? Ma poi ...
  • clicco di nuovo, e funziona bene

Questa continua, lavorando ogni-altro click ... tutte le idee?

È stato utile?

Soluzione

Il tuo problema suona come un problema lato server - il genere funziona solo dopo che la tabella è stata legata nella stessa richiesta. In caso contrario, l'evento hook-up per l'ordinamento non riesce a trovare nulla.

Naturalmente - se si è già vincolata al tavolo è già stato risolto - così ora dovete ottenere nuovamente i dati

.

Questo tipo di problema è un problema comune con il modello di pagina dell'evento .Net orribile.

più semplice correzione è quello di assicurarsi che il vostro tavolo è rimbalzo sul postback ajax dopo ViewState è stato caricato, ma prima che gli eventi di fuoco, quindi ottenere i dati di nuovo dopo l'evento ha sparato. Il problema è che poi hai i dati due volte.

Una correzione migliore è di evitare l'uso del Net eventi mediazioni in tutti gli elementi della pagina dinamica.

Questi tipi di problemi con il modello di pagina dell'evento NET è parte del motivo c'è così tanto interesse per MVC.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top