jQuery problema di estensione tablesorter con più clic?
-
06-09-2019 - |
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?
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.