Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Evitare il refresh nella pagina durante la navigazione record

    Salve ragazzi buongiorno.

    Ho un problema sulla navigazione di record tramite asp all'interno di un div che si apre dopo avere cliccato su una frase.
    Ecco la situazione.

    All'apertura della pagina il div è nascosto. Poi io clicco e lui si apere mostrandomi dei record che possono essere navigati con i tasti avanti e indietro.
    Il problema è dato dal fatto che quando navigo la pagina fa un refresh e di conseguenza il div torna nascosto. Poi se lo apro mi mostra cmq i risultati aggiornati secondo la navigazione scelta.

    Hio la possibilità di dire alla pagina che al clic non deve fare il refresh e che si deve solo aggiornare il contenuto del div?

    Grazie a tutti in anticipo.

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    effettua un refresh(che poi refresh non è) perche, immagino, per la navigazione fai delle chiamate al server. Per risolvere ti basta utilizzare ajax.

  3. #3
    Ok allora faccio una ricerca.

    Grazie per il suggerimento.

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  4. #4
    Scusa Vindav un chirimento.

    Ajax lo devo usare per evitare il nuovo caricamento o per la paginazione dei record?

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    per evitare il ricaricamento della pagina... per la paginazione mi era sembrato di capire che già funzionasse... usando ajax il procedimento di paginazione penso dovrebbe essere rivisto in quanto le informazioni spedite dal server le avrai in un oggetto javascript mentre prima immagino le recuperavi con php come parametri della request o sessione, prova a scrivere qualche linea di codice, una bozza almeno, poi se hai ancora difficoltà posta qui quello che hai scritto.

  6. #6
    Allora ho cercato tramite AJAXPAGE di inglobare la pagina esterna delle news all0interno del div. Solo che poi al clic mi esce dalla pagina principale e mostra quella delle news.

    Ecco il codice del div:
    codice:
    <div id="newsDetails">
    <div id="headerFinestraDettaglio">
    <div id="titoloFinestraDettaglio">News</div>
    <div id="chiusuraFinestraDettaglio">
      <p class="testoChiusuraFinestraDettaglio">X</p></div>
    </div>
    <div id="contenutiFinestraDettaglioNews">
    <p class="testoNews">
    <% 
    While ((Repeat2__numRows <> 0) AND (NOT rsNews_2.EOF)) 
    %>
    <span class="testoGrassetto"><%=(rsNews_2.Fields.Item("titolo").Value)%></span>
    
    
    <%=(rsNews_2.Fields.Item("messaggi").Value)%>
    
    
    
    
    <% 
      Repeat2__index=Repeat2__index+1
      Repeat2__numRows=Repeat2__numRows-1
      rsNews_2.MoveNext()
    Wend
    %>
    
    
    
    
    </p>
    <% If MM_offset <> 0 Then %>
    Primo
    <% End If ' end MM_offset <> 0 %>
    
    <% If MM_offset <> 0 Then %>
    Indietro
    <% End If ' end MM_offset <> 0 %>
    
    <% If Not MM_atTotal Then %>
    Avanti
    <% End If ' end Not MM_atTotal %>
    
    <% If Not MM_atTotal Then %>
    Ultimo
    <% End If ' end Not MM_atTotal %>
    
    </div>
    </div>
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  7. #7
    Questa invece è la prigrammazione per la paginazione:
    codice:
    <%
    Dim rsNews_2
    Dim rsNews_2_numRows
    
    Set rsNews_2 = Server.CreateObject("ADODB.Recordset")
    rsNews_2.ActiveConnection = MM_xyz_STRING
    rsNews_2.Source = "SELECT * FROM news ORDER BY ID_news DESC"
    rsNews_2.CursorType = 0
    rsNews_2.CursorLocation = 2
    rsNews_2.LockType = 1
    rsNews_2.Open()
    
    rsNews_2_numRows = 0
    %>
    <%
    Dim Repeat2__numRows
    Dim Repeat2__index
    
    Repeat2__numRows = 4
    Repeat2__index = 0
    rsNews_2_numRows = rsNews_2_numRows + Repeat2__numRows
    %>
    <%
    '  *** Recordset Stats, Move To Record, and Go To Record: declare stats variables
    
    Dim rsNews_2_total
    Dim rsNews_2_first
    Dim rsNews_2_last
    
    ' set the record count
    rsNews_2_total = rsNews_2.RecordCount
    
    ' set the number of rows displayed on this page
    If (rsNews_2_numRows < 0) Then
      rsNews_2_numRows = rsNews_2_total
    Elseif (rsNews_2_numRows = 0) Then
      rsNews_2_numRows = 1
    End If
    
    ' set the first and last displayed record
    rsNews_2_first = 1
    rsNews_2_last  = rsNews_2_first + rsNews_2_numRows - 1
    
    ' if we have the correct record count, check the other stats
    If (rsNews_2_total <> -1) Then
      If (rsNews_2_first > rsNews_2_total) Then
        rsNews_2_first = rsNews_2_total
      End If
      If (rsNews_2_last > rsNews_2_total) Then
        rsNews_2_last = rsNews_2_total
      End If
      If (rsNews_2_numRows > rsNews_2_total) Then
        rsNews_2_numRows = rsNews_2_total
      End If
    End If
    %>
    <%
    ' *** Move To Record and Go To Record: declare variables
    
    Dim MM_rs
    Dim MM_rsCount
    Dim MM_size
    Dim MM_uniqueCol
    Dim MM_offset
    Dim MM_atTotal
    Dim MM_paramIsDefined
    
    Dim MM_param
    Dim MM_index
    
    Set MM_rs    = rsNews_2
    MM_rsCount   = rsNews_2_total
    MM_size      = rsNews_2_numRows
    MM_uniqueCol = ""
    MM_paramName = ""
    MM_offset = 0
    MM_atTotal = false
    MM_paramIsDefined = false
    If (MM_paramName <> "") Then
      MM_paramIsDefined = (Request.QueryString(MM_paramName) <> "")
    End If
    %>
    <%
    ' *** Move To Record: handle 'index' or 'offset' parameter
    
    if (Not MM_paramIsDefined And MM_rsCount <> 0) then
    
      ' use index parameter if defined, otherwise use offset parameter
      MM_param = Request.QueryString("index")
      If (MM_param = "") Then
        MM_param = Request.QueryString("offset")
      End If
      If (MM_param <> "") Then
        MM_offset = Int(MM_param)
      End If
    
      ' if we have a record count, check if we are past the end of the recordset
      If (MM_rsCount <> -1) Then
        If (MM_offset >= MM_rsCount Or MM_offset = -1) Then  ' past end or move last
          If ((MM_rsCount Mod MM_size) > 0) Then         ' last page not a full repeat region
            MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
          Else
            MM_offset = MM_rsCount - MM_size
          End If
        End If
      End If
    
      ' move the cursor to the selected record
      MM_index = 0
      While ((Not MM_rs.EOF) And (MM_index < MM_offset Or MM_offset = -1))
        MM_rs.MoveNext
        MM_index = MM_index + 1
      Wend
      If (MM_rs.EOF) Then 
        MM_offset = MM_index  ' set MM_offset to the last possible record
      End If
    
    End If
    %>
    <%
    ' *** Move To Record: if we dont know the record count, check the display range
    
    If (MM_rsCount = -1) Then
    
      ' walk to the end of the display range for this page
      MM_index = MM_offset
      While (Not MM_rs.EOF And (MM_size < 0 Or MM_index < MM_offset + MM_size))
        MM_rs.MoveNext
        MM_index = MM_index + 1
      Wend
    
      ' if we walked off the end of the recordset, set MM_rsCount and MM_size
      If (MM_rs.EOF) Then
        MM_rsCount = MM_index
        If (MM_size < 0 Or MM_size > MM_rsCount) Then
          MM_size = MM_rsCount
        End If
      End If
    
      ' if we walked off the end, set the offset based on page size
      If (MM_rs.EOF And Not MM_paramIsDefined) Then
        If (MM_offset > MM_rsCount - MM_size Or MM_offset = -1) Then
          If ((MM_rsCount Mod MM_size) > 0) Then
            MM_offset = MM_rsCount - (MM_rsCount Mod MM_size)
          Else
            MM_offset = MM_rsCount - MM_size
          End If
        End If
      End If
    
      ' reset the cursor to the beginning
      If (MM_rs.CursorType > 0) Then
        MM_rs.MoveFirst
      Else
        MM_rs.Requery
      End If
    
      ' move the cursor to the selected record
      MM_index = 0
      While (Not MM_rs.EOF And MM_index < MM_offset)
        MM_rs.MoveNext
        MM_index = MM_index + 1
      Wend
    End If
    %>
    <%
    ' *** Move To Record: update recordset stats
    
    ' set the first and last displayed record
    rsNews_2_first = MM_offset + 1
    rsNews_2_last  = MM_offset + MM_size
    
    If (MM_rsCount <> -1) Then
      If (rsNews_2_first > MM_rsCount) Then
        rsNews_2_first = MM_rsCount
      End If
      If (rsNews_2_last > MM_rsCount) Then
        rsNews_2_last = MM_rsCount
      End If
    End If
    
    ' set the boolean used by hide region to check if we are on the last record
    MM_atTotal = (MM_rsCount <> -1 And MM_offset + MM_size >= MM_rsCount)
    %>
    <%
    ' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters
    
    Dim MM_keepNone
    Dim MM_keepURL
    Dim MM_keepForm
    Dim MM_keepBoth
    
    Dim MM_removeList
    Dim MM_item
    Dim MM_nextItem
    
    ' create the list of parameters which should not be maintained
    MM_removeList = "&index="
    If (MM_paramName <> "") Then
      MM_removeList = MM_removeList & "&" & MM_paramName & "="
    End If
    
    MM_keepURL=""
    MM_keepForm=""
    MM_keepBoth=""
    MM_keepNone=""
    
    ' add the URL parameters to the MM_keepURL string
    For Each MM_item In Request.QueryString
      MM_nextItem = "&" & MM_item & "="
      If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
        MM_keepURL = MM_keepURL & MM_nextItem & Server.URLencode(Request.QueryString(MM_item))
      End If
    Next
    
    ' add the Form variables to the MM_keepForm string
    For Each MM_item In Request.Form
      MM_nextItem = "&" & MM_item & "="
      If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
        MM_keepForm = MM_keepForm & MM_nextItem & Server.URLencode(Request.Form(MM_item))
      End If
    Next
    
    ' create the Form + URL string and remove the intial '&' from each of the strings
    MM_keepBoth = MM_keepURL & MM_keepForm
    If (MM_keepBoth <> "") Then 
      MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
    End If
    If (MM_keepURL <> "")  Then
      MM_keepURL  = Right(MM_keepURL, Len(MM_keepURL) - 1)
    End If
    If (MM_keepForm <> "") Then
      MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
    End If
    
    ' a utility function used for adding additional parameters to these strings
    Function MM_joinChar(firstItem)
      If (firstItem <> "") Then
        MM_joinChar = "&"
      Else
        MM_joinChar = ""
      End If
    End Function
    %>
    <%
    ' *** Move To Record: set the strings for the first, last, next, and previous links
    
    Dim MM_keepMove
    Dim MM_moveParam
    Dim MM_moveFirst
    Dim MM_moveLast
    Dim MM_moveNext
    Dim MM_movePrev
    
    Dim MM_urlStr
    Dim MM_paramList
    Dim MM_paramIndex
    Dim MM_nextParam
    
    MM_keepMove = MM_keepBoth
    MM_moveParam = "index"
    
    ' if the page has a repeated region, remove 'offset' from the maintained parameters
    If (MM_size > 1) Then
      MM_moveParam = "offset"
      If (MM_keepMove <> "") Then
        MM_paramList = Split(MM_keepMove, "&")
        MM_keepMove = ""
        For MM_paramIndex = 0 To UBound(MM_paramList)
          MM_nextParam = Left(MM_paramList(MM_paramIndex), InStr(MM_paramList(MM_paramIndex),"=") - 1)
          If (StrComp(MM_nextParam,MM_moveParam,1) <> 0) Then
            MM_keepMove = MM_keepMove & "&" & MM_paramList(MM_paramIndex)
          End If
        Next
        If (MM_keepMove <> "") Then
          MM_keepMove = Right(MM_keepMove, Len(MM_keepMove) - 1)
        End If
      End If
    End If
    
    ' set the strings for the move to links
    If (MM_keepMove <> "") Then 
      MM_keepMove = Server.HTMLEncode(MM_keepMove) & "&"
    End If
    
    MM_urlStr = Request.ServerVariables("URL") & "?" & MM_keepMove & MM_moveParam & "="
    
    MM_moveFirst = MM_urlStr & "0"
    MM_moveLast  = MM_urlStr & "-1"
    MM_moveNext  = MM_urlStr & CStr(MM_offset + MM_size)
    If (MM_offset - MM_size < 0) Then
      MM_movePrev = MM_urlStr & "0"
    Else
      MM_movePrev = MM_urlStr & CStr(MM_offset - MM_size)
    End If
    %>
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Allora ho cercato tramite AJAXPAGE di inglobare la pagina esterna delle news all0interno del div. Solo che poi al clic mi esce dalla pagina principale e mostra quella delle news.
    con il termine AJAXPAGE a che cosa ti riferisci,hai un link? Cosa centra ora la pagine delle news con il refresh e la paginazione? al click ti esce dalla pagina principale, ma al click di cosa?

    Cmq a sto punto visto che ho notato che non usi mai javascript ti consiglio di utilizzare qualche framework per asp che ti permette di effettuare delle chiamate ajax.
    qua c'è una guida per asp.net

    Ultima cosa ma il codice della paginazione sta nella stessa pagina del div in cui mostri i dati?se è cosi allora è un vero e proprio refresh della pagina, ed ad ogni refresh effettui una select sul db... sinceramente non mi sembra la strada più corretta da seguire... Era maglio caricarsi tutti i dati in memoria(sessione) in qualche oggetto specifico e poi lavorare su quello no?

  9. #9
    Si questo è vero.

    Stavo pensando ad un'altra cosa che forse potrebbe risolvere il problema.
    Se io tramite io riesco a far memorizzare alla pagina lo stati di apertura del div lui al refresh me lo dovrebbe far vedere aperto.

    Lo stato del div aperto lo potrei memorizzare tramite dei cookie.

    Potrebbe essere una strada percorribile?

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    si è una strada percorribile... se intendi ancora ricaricare la pagina. Il tutto può essere fatto con asp senza utilizzare i cookie, basta che ogni volta che ricarichi la pagina passi un parametro che ti dica se il div deve essere visibile o meno. Al caricamento recuperi questo parametro, se è null e quindi non esiste significa che è la prima volta che entri nella pagina e lasci il div nascosto. Se è valorizzato allora significa che c'è stato un refresh recuperi il valore e lo passi a javascript, da javascript imposti lo stato del div a visibile.

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.