Visualizzazione dei risultati da 1 a 6 su 6

Discussione: VB Scroll della pagina

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    133

    VB Scroll della pagina

    Non so neanche copiare!
    Dalla sezione JavaScript ho copiato un metodo per memorizzare document.documentElement.scrollTop, proposto da Pietro09 sempre dal suo bellissimo libro.

    Ho aggiunto il codice in JavaScripit e ho aggiunto i campi hidden relativi.

    All'evento Unload della mia pagina salvo le coordinate.

    codice:
    Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload
    Session("GScrollV") = Me.StaticPostBackScrollVerticalPosition.Value
    Session("GScrollX") = Me.StaticPostBackScrollHorizontalPosition.Value
    End Sub
    Adesso arriviamo all'evento load (dalle pagine che mi interessano passo in QueryString ScrollY=0)

    codice:
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    
    If Not Page.IsPostBack Then
       If Not (Request.QueryString("ScrollY")) Is Nothing Then
    'response.write(Session("GScrollV")) mi restituisce 2500 circa
       Me.StaticPostBackScrollVerticalPosition.Value = Session("GScrollV")
       Me.StaticPostBackScrollHorizontalPosition.Value = Session("GScrollX")
       End If
    End If
    
    End Sub
    Ma la pagina rimane allineata in alto.

    Riporto anche la parte di JavaScript per chiarezza

    codice:
    <script id="clientEventHandlersJS" type="text/javascript" >
    <!--
    function window_onload() {
    	if(self.RestoreScrollPosition) RestoreScrollPosition();
    	if(self.SaveScrollPositions) SaveScrollPositions();
    }
    
    function RestoreScrollPosition() { 
    	scrollTo(document.forms[0].StaticPostBackScrollHorizontalPosition.value, document.forms[0].StaticPostBackScrollVerticalPosition.value); 
    } 
    
    function SaveScrollPositions() { 
    	document.forms[0].StaticPostBackScrollVerticalPosition.value = GetScrollY();
    	document.forms[0].StaticPostBackScrollHorizontalPosition.value = GetScrollX();
    	setTimeout('SaveScrollPositions()', 10);
    } 
    
    function GetScrollY() {
        if (document.documentElement && document.documentElement.scrollTop)
    	    return document.documentElement.scrollTop;
        else if (document.body)
    	    return document.body.scrollTop
        else
        {
    	    return window.pageYOffset;
        }    
    }
    
    function GetScrollX() {
        if (document.documentElement && document.documentElement.scrollLeft)
    	    return document.documentElement.scrollLeft;
        else if (document.body)
    	    return document.body.scrollLeft
        else
        {
    	    return window.pageXOffset;
        }    
    }
    //-->
    </script>
        
    </head>
    <body onload="return window_onload()">
        <form id="form1" runat="server">
    	<input type="hidden" id="StaticPostBackScrollVerticalPosition" value="0" runat="server" />
    	<input type="hidden" id="StaticPostBackScrollHorizontalPosition" value="0" runat="server" />
        <div  class="base">
    ...
    ...
    Cosa mi manca? Guardando il codice HTML value della vertical position è 0.

    Grazie
    Tomas
    PS. Se devo postarlo sotto JavaScript ditelo che cancello e rifaccio.
    tomas

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    133
    In session trovo un valore solo se effetto prima un postback della pagina (per altri motivi), se no il valore è zero.
    Tomas
    tomas

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    quello era per il framework 1.1. Adesso si sono evoluti e basta mettere nell'intestazione della pagina: MaintainScrollPositionOnPostback="true"
    Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    133
    Per l'ennesima volta mi ha fregato, le coordinate della pagina vanno lette come argomenti di passaggio con query string. Quando mai capirò lato server, lato client?
    Tomas
    tomas

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    133
    Hai ragione Pietro, e c'è per gestire controlli all'interno del repeater, purtoppo devo caricare un'altra pagina, ed è meglio se al ritorno gli ripresento la stessa pagina con cui sono partiti, stesso ordine, stessa paginazione, stessa posizione.
    Fare le cose è semplice, farle che siano comode da usare per gli operatori, non è così banale.
    Adesso sto cercando di capire come fare, lato client, a far vedere un'anteprima dell'immagine prima dell'upload.

    Ne sai qualcosa? Immagino che vada organizzato con Java o Ajax. Per ora non ho trovato nulla di gia' fatto.

    Grazie per aver postato un sacco di codice è utilissimo per spunti idee.

    Tomas
    tomas

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Tomas
    Adesso sto cercando di capire come fare, lato client, a far vedere un'anteprima dell'immagine prima dell'upload.
    Tomas
    Questo è javascript, e nel forum apposito sono bravissimi. Da quel che so io, non si può. Prima si poteva con IE, ma adesso non più. E poi non serve. Quando si fa la ricerca dell'immagine da spedire si sceglie la modalità anteprima e la si guarda
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.