2011-09-02 21 views

risposta

1

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.

+1

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

+1

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

0

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.

+0

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. –

0

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.

Problemi correlati