Visualizzazione dei risultati da 1 a 8 su 8

Discussione: PageIndex gridview!

  1. #1

    PageIndex gridview!

    ho un insieme di immagini, vorrei cliccare su una qualsiasi e visualizzarla in un'altra pagina aspx. Questa pagina ha un gridview che contiene un solo elemento per colonna (l'immagine ingrandita). Il mio problema è che quando clicco su una qualsiasi immagine mi visualizza sempre la prima, allora ho pensato di passargli anche il numero della "pagina" da visualizzare. Quindi cambio il valore della proprietà PageIndex del gridview e lancio "gridview1.DataBind()" ma non funziona!
    Questa operazione la faccio nel Page_Load.
    Che cosa sto sbagliando?

    Utilizzo asp.net 3.5 con VisualStudio 2008.

    Grazie in anticipo

  2. #2
    la cosa che non capisco é che, se creo un bottone e ci metto il codice per cambiare pagina questo funziona. Ma se le stesse operazioni le faccio nel Page_Load questo non funziona. Eppure il Page_Load viene eseguito al caricamento della pagina.

  3. #3
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    beh se nel page_load richiami constatemente il DataBind della gridview è ovvio che questa ti si refreshi ad ogni postback....


    se vuoi accedere alla righa che ha scatenato l'evento puoi intercettare l'evento onItemCommand della gridview ed avere accesso si0 ai webcontrol della righa mediante il metodo e.item.FindControl(...) che all'oggetto associato alla riga e.Item.Data

  4. #4
    non voglio accedere alla riga, voglio solo impostare la pagina da visualizzare nel gridview; nient'altro.
    La pagina da visualizzare gli viene passata tramite querystring. Io prendo il parametro e lo imposto nel PageIndex del gridview.
    Se mettessi un controllo sul postback funzionerebbe? (Non ho il pc su cui sto lavorando sotto mano...)


    Grazie x l'aiuto

  5. #5
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    Ripeto se rifai il dataBind nel page_load refreshi la gridview e perdi il PageIndex che hai assegnato con Request.QueryString["Page"] pero senza codice è difficle capire iil problema

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    116
    Fammi capire...
    Tu hai una pagina con una serie di immagini, al click di una di queste vuoi che ti si apra una seconda pagina nella quale ci sia un gridView con una solo colonna (l'immagine) ed una sola riga (l'immagine che hai selezionato).
    Questo gridView deve avere un pager col quale navigare tra le varie immagini che hai inserito, giusto?

  7. #7
    ESATTO!!!
    Il problema è il PageIndex. Dove lo dovrei aggiornare x non vedere sempre la prima foto?

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    116
    Allora, ho guardato un programma recente nel quale uso il gridView e ilsuo pager e funziona correttamente e direi che sono in disaccordo con gabbone perché il mio codice:

    codice:
        Protected Sub gVwUtenti_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gVwUtenti.PageIndexChanging
    
            gVwUtenti.PageIndex = e.NewPageIndex
            gVwUtenti.DataBind()
    
        End Sub
    funziona facendo il dataBind() dopo aver cambiato il parametro dell'indice.
    Quindi ti direi che quando fai la Init (ma penso funzoni anche nella load) semplicemente estrai tutto il recordset delle immagini, lo imposti nel datasource della gridview, metti la proprietà AllowPaging a true

    codice:
    gVwUtenti.AllowPaging = True
    dopodiché imposti la proprietà pageIndex ed esegui il dataBind().
    Questo, ripeto, è da fare alla Init o alla Load, poi per cambiare l'indice usi il metodo PageIndexChanging e in sostanza copi il primo pezzo di codice che ho postato.

    Così a me funziona, prova e dimmi!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.