Come posso mantenere la posizione di scorrimento sul postback dopo aver ordinato una tabella di griglia che utilizza il framework MvcContrib?ASP.NET MVC3 Razor - Mantieni la posizione di scorrimento sul postback
risposta
Il modo usuale consiste nell'usare alcuni javascript per impostare la posizione corrente di scorrimento su un campo nascosto, quindi ripristinare quella posizione sul caricamento della pagina (di solito in un evento jquery ready).
Tuttavia, questo è davvero solo un effetto collaterale. Dovresti eseguire una sorta di comando ajax per aggiornare la griglia anziché un postback, quindi non è necessario scorrere.
Utilizzare jQuery e cookie lato client.
$(function(){
var posName = location.href + "_top";
$(window).unload(function() {
var top = $(document).scrollTop();
$.cookie(posName, top);
});
var goTop = parseInt($.cookie(posName));
if (goTop) {
$(document).scrollTop(goTop);
$.cookie(posName, "");
}
});
Spero che questo codice.
Ciò significherebbe che il browser scorre anche se ci si sposta su una pagina diversa. Penso che sia meglio usare un input nascosto, dato che rimarrà solo sulla pagina corrente. –
Una soluzione utile è pubblicato qui: http://www.experts-exchange.com/Hardware/Servers/Q_28082177.html
$(function(){
var top = parseInt($.cookie("top"));
if(top) $(document).scrollTop(top);
$(document).scroll(function() {
var top = $(document).scrollTop();
$.cookie("top", top);
})
});
Questa è una discussione molto vecchio ma mi hanno inviato questo per sviluppatore che sarà alla ricerca di questo tipo di problema, può aiutare.
- 1. Ripristina posizione di scorrimento dopo il postback asincrono - ASP.NET
- 2. Concatenazione di stringhe con ASP.NET MVC3 Razor
- 3. Mantiene la posizione di scorrimento di un div all'interno di una pagina sul postback
- 4. ASP.NET MVC3 Razor: perdita di intelligenza quando si posiziona la vista in una posizione alternativa?
- 5. Come mantenere la posizione di scorrimento pagina dopo una pagina di postback in asp.net
- 6. Mantenere la posizione scroller sulla Div dopo pagina postback (ASP.NET)
- 7. Come scrivere il campo html su asp.net MVC3 Razor
- 8. Ottieni il nome dell'area in Visualizzazioni sul tempo di rendering su ASP.NET MVC3 Razor
- 9. pageBaseType in asp.net mvc3 razor - funziona! - No intellisense però?
- 10. Mantieni la posizione di scorrimento di GridView attraverso la rotazione dello schermo
- 11. Controlli caricamento file tramite Razor in ASP.NET MVC3
- 12. Ajax CollapsiblePanelExtender Mantieni stato nel postback
- 13. ASP.NET: evitare RequiredFieldValidator sul pulsante di navigazione postback
- 14. ASP.Net MVC Postback un valore di etichetta sul controller
- 15. Ottieni casella di controllo Valori sul postback ASP.NET MVC
- 16. ASP.NET MVC: modifica delle proprietà del modello sul postback
- 17. Come mantenere la posizione di scorrimento usando la Pagina Master?
- 18. Creazione di MVC3 Razor Helper come Helper.BeginForm()
- 19. ASP.NET MVC3 - textarea con @ Html.EditorFor
- 20. Mantieni la posizione di scorrimento del TextBox durante l'aggiunta della riga
- 21. Come mantenere la posizione di scorrimento dopo che la convalida sul lato client non riesce?
- 22. Come mostrare la pagina web .aspx in VIEW MVC3 Razor
- 23. ListView ottiene la posizione di scorrimento?
- 24. ASP.Net MVC - modello con raccolta non popolata sul postback
- 25. ASP.net con C# Mantenere una lista sul postback
- 26. asp.net mvc3 controlla il pulsante di opzione basato sul modello
- 27. Postback in asp.net
- 28. ASP.NET - Controlback postback droplistlist programmato
- 29. BreadCrumb- ASP.NET MVC3
- 30. Imposta posizione di scorrimento
Questa soluzione è ottima, ma mi chiedevo se potevo trovare qualcosa di migliore e più semplice, come la proprietà MaintainScrollPositionOnPostback = true in Web Form ASP.NET. Sto usando la griglia di MVC Contrib con filtri di ricerca e ordinamento quindi mi aspettavo una soluzione integrata ma non riesco a trovarla ... – Mast3r
Sì, sono d'accordo con Mast3r. Nulla dice che dobbiamo "usare" Ajax. Trovo che usare viewmodels in mvc 4 con il postback sia molto più veloce da sviluppare e più facile da mantenere. Se la memorizzazione nella cache del browser è abilitata, non vedi nemmeno il colpo di pagina! soluzione all'indirizzo http://stackoverflow.com/a/2618726/706363 – ppumkin