Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Aggiornare la pagina e ritornare al punto preciso

    Ciao...
    ho un foglio (jsp) con delle celle di input che ogni volta che faccio un inserimento mi aggiorna la pagina. Siccome il foglio è molto lungo vorrei sapere se si può fare una cosa...si può fare in modo che ogni aggiornamento della pagina mi faccia ricomparire la stessa all'altezza a cui stava prima dell'aggiornamento???...
    Perchè è un pò scomodo andare a cercarsi ogni volta il punto a cui ero arrivata...considerate che il foglio ha 700 righe!!!
    Grazie...

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    con una a

    <a name="punto">
    e fai il refresh con
    self.location = "...#punto";

  3. #3
    Grazie mille..ma potresti spiegarmi meglio???
    Non ho capito...cos'è <a name="punto">...e il self.location è un'action!!!E dove devo metterla...devo associarla ad ogni casella di input??? :master:
    Grazie ancora

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    esempio
    codice:
    ...
    <a name="punto">qua</a>
    ...
    
    self.location = "...#punto";
    questo porta la pagina a scrollare al "punto" (come quando fai un post e dopo cliccato "invia risposta" ti riporta alla pagina mostrando il nuovo post)
    probabilmente mettendo il name nella action funziona, devi testarlo

    ci sono altri modi, ad esempio con javascript e la funzione scrollTo, ma devi conoscere IN PIXEL il punto dove vuoi scrollare
    +o- impossibile

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ho una pagina server asp.net di esempio. Anche se usi un sistema diverso, forse puoi trovare uno spunto.
    Il principio è questo:
    dentro il form si mettono due hidden che sono valorizzati con la posizione della pagina.
    Quando viene fatta l'aggiornamento della pagina, nell'evento load, viene ristabilita la posizione x e y originali.
    Il codice è questo: ho messo commenti affinchè sia comprensibile pure a chi non usa asp.net, comunque siamo qui:

    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="scroll_griglia_senza_webcontrol.aspx.vb" Inherits="CorsoApogeo_wrox_comandi_ed_associazione_di_dati_datagrid_scroll_griglia_senza_webcontrol" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Pagina senza titolo</title>
        <link href="../../../../stili/Styles.css" rel="stylesheet" type="text/css" />
    		<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()">
    		<h3>Scroll di una griglia</h3>
    		<form id="Form1" method="post" runat="server">
    			
    			<%-- questi due hidden conservano la posizione di scroll  
    			    e vanno valorizzati nel server
    			--%>
    			<input type="hidden" id="StaticPostBackScrollVerticalPosition" value="0" runat="server" />
    			<input type="hidden" id="StaticPostBackScrollHorizontalPosition" value="0" runat="server" />
    			
    			<%-- questa è una semplice tabella con molte righe --%>
    			<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" EnableViewState="true" Width="1500px">
    				<Columns>
    					<asp:ButtonColumn ButtonType="PushButton" HeaderText="submit" Text="SUBMIT"></asp:ButtonColumn>
    					<asp:BoundColumn DataField="id" HeaderText="ID"></asp:BoundColumn>
    					<asp:BoundColumn DataField="nome_comune" HeaderText="COMUNE"></asp:BoundColumn>
    					<asp:EditCommandColumn EditText="Modifica" HeaderText="Operazioni" UpdateText="Aggiorna" CancelText="Annulla"></asp:EditCommandColumn>
    				</Columns>
    			</asp:DataGrid>
    		</form>
    	</body>
    </html>
    Pietro

  6. #6
    Per prima cosa grazie a tutti...
    Scrivo lo script corretto..magari può essere d'aiuto a qualcuno...
    ----
    <script type="text/javascript">
    window.onload = function(){
    var strCook = document.cookie;
    if(strCook.indexOf("!~")!=0){
    var intS = strCook.indexOf("!~");
    var intE = strCook.indexOf("~!");
    var strPos = strCook.substring(intS+2,intE);
    document.body.scrollTop = strPos; }}
    function SetScrollPosition(){
    var intY = document.body.scrollTop;
    document.title = intY;
    document.cookie = "yPos=!~" + intY + "~!";}
    window.onscroll = SetScrollPosition;
    </script>


    Ciao....

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.