+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: [ASP.Net]Passare un codice da una pagina ad un'altra

  1. #1
    perla0279 non è in linea Scolaretto
    Post
    230

    [ASP.Net]Passare un codice da una pagina ad un'altra

    Ciao
    Ho una galleria di immagini di prodotti generici, cliccando sull'immagine ho messo un collegamento ad una pagina generale che mi fa vedere le specifiche del prodotto.

    I dati per la galleria le prendo da una store procedure a database.
    Vorrei che quando clicco sull'immagine venisse passato il codice articolo associato a quell'imagine nell'altra pagina..........
    In questa pagina dovrei usare questo codice in un'altra store procedure per la ricerca dei testi di quell'articolo specifico.


    Vorrei fare questo per evitare di creare una pagina per ogni articolo, facendo così una volta inserito un modello di pagina riesco a visualizzare il tutto con il codice articolo.


    come faccio ad associare un codice all'imagina che venga trasmesso nell'altra pagina???
    e come faccio poi a riprenderlo nell'altra pagina per inserirlo nella store procedure.

  2. #2
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ciao elena...dipende da quali caratteristiche hai associato all'immagine, cioè spero che ad un certo nome articolo.gif corrisponda un id = 123....
    ...se questo è già presente allora passare il valore dell'id da una pagina ad un'altra si può fare in decine di modi...
    1)lo passi nel query string della pagina che visualizza il dettaglio...nel apge_load di quest'ultima lo recuperi in queto modo:
    codice:
    If Request.QueryString("id") <> Nothing Then
      Dim idArticle As String = Request.QueryString("id")
    End If
    2)puoi inserire il tuo id nella Session(anche se per una cosa del genere non la scomoderei)...funziona come un'hashtable quindi chiave valore:
    codice:
    'Nella pagina che contiene la lista degli articoli
    Session.Add("idArticle", 123)
    'Nella pagina del dettaglio...per esempio nel page_load recuperi il valore
    dim idArticle as string = Session("idArticle").ToString()
    'Una volta recuperato cancella il contenuto della session(a tal proposito ti consiglio uno studio' dell'oggetto Session)
    Session.Clear()
    3)puoi volendo anche usare il meccanismo del post cross page introdotto in ASP.NET 2.0...ma credo che il primo metodo sia più che sufficente

  3. #3
    perla0279 non è in linea Scolaretto
    Post
    230
    ciao
    stò provando ad usare il primo metodo......

    ma non ho ben capito come devo impostare il tutto.....porta pazienza ma per me l'argomento è nuovo


    Allora se ho un articolo x con codice 3333 (tanto per esempio),
    - devo chiamare l'immagine 3333.gif ????? oppure gli devo mettere un id=3333 ????

    e poi "lo passi nel query string della pagina che visualizza il dettaglio" come devo fare, che controllo si usa per passare la variabiuel???

  4. #4
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Supponi di avere questo scenario(dovrebbe essere molto simile al tuo):
    1)pagina che contiene la lista degli articoli
    2)pagina dettaglio dell'articolo selezionato nella pagina 1
    La necessità è passare in qualche modo l'id dell'articolo da pagina 1 a pagina 2.
    Se in base alle tue esigenze l'id dell'articolo è più che sufficente per quello che devi fare, allora passa solo l'id:
    codice:
    'Codice nella pagina 1
    'Dopo aver recuperato l'od dell'articolo
    Server.Transfer("Dettaglio.aspx?Id=3333")
    codice:
    'Codice nella pagina 2(per esempio nel page_load)
    'Recuperi l'id
    If Request.QueryString("Id") <> Nothing Then
      Dim idArticle As String = Request.QueryString("Id")
    End If

  5. #5
    L'avatar di luciano.net
    luciano.net non è in linea Scolaretto
    Luogo
    Roma
    Post
    475
    Ho una domanda anch'io che forse non merita una nuova discussione:
    codice:
    Server.Transfer
    come anche
    codice:
    Response.Redirect
    funzionano solo dal codice di una pagina aspx.
    Come posso fare per chiamare una pagina dal codice presente in una classe?

    Supponiamo di avere una classe Prodotto con un metodo pubblico Show che debba far aprire la pagina Prodotto.aspx.

    Luciano

  6. #6
    perla0279 non è in linea Scolaretto
    Post
    230
    ciao

    allora adesso ho capito come devo fare......solo che la sintassi non mi viene

    Nella pagina 1, clicco su un'immagine per passere alla pagina 2
    Il controllo che crea l'immagine con il collegamento l'ho creato qui:
    codice:
    
    PrivateSub Bind(ByVal dt1Prodotti800 As DataTable)
    ForEach row As DataRow In dt1Prodotti800.Rows
    row("Immagine") = String.Format("<a href=""{0}""alt=""mobili antichi 800""><img src=""images/mobili800/{1}""width=""65"" height=""48"" border=""0""></a>" ,row("Collegamento").ToString().Trim(), row("Immagine").ToString().Trim())
    Next
    EndSub
    
    nella stessa tabella ho anche il codice id da associare nella colonna "Codice".


    Io ho provato cos':
    codice:
    
    PrivateSub Bind(ByVal dt1Prodotti800 As DataTable)
    ForEach row As DataRow In dt1Prodotti800.Rows
    row("Immagine") = String.Format("<a href=""{0}""alt=""mobili antichi 800""><img src=""images/mobili800/{1}""width=""65"" height=""48"" border=""0""></a>" Server.Transfer("Dettaglio.aspx?Id=3333"), row("Collegamento").ToString().Trim(), row("Immagine").ToString().Trim())
    Next
    EndSub
    
    poi così

    codice:
    
    PrivateSub Bind(ByVal dt1Prodotti800 As DataTable)
    ForEach row As DataRow In dt1Prodotti800.Rows
    row("Immagine") = String.Format("<a href=""{0}""alt=""mobili antichi 800""><img src=""images/mobili800/{1}""width=""65"" height=""48"" border=""0""></a>" ,row("Collegamento").ToString().Trim(), row("Immagine").ToString().Trim())
    Server.Transfer("articolo.aspx?Id=2222")
    Next
    EndSub
    

    poi mi è venuto il dubbio che non fosse il posto giusto dove inserirlo????

  7. #7
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    @elena:
    ...non è il posto giusto(a parte che scrivere tutto quell'html nel codice, costruito a manina non è assolutamente la cosa migliore( i motivi mantenibilità, leggibilità ecc non cambiano)...nel tuo caso, per non stravolgere il tutto puoi intervenire sull'attributo href del tag A, nel senso che farai puntare il link alla pagina Dettagli.aspx:
    per esempio:
    codice:
    <a href="dettagli.aspx?Id=3333">Link</a>
    ...controlla se è quello che stai cercando altrimenti dobbiamo raggionarci ancora su...

    @Luciano:
    ...aspetta i due metodi Redirect e Transfer non sono ovviamente la stessa cosa. Con il Transfer il tutto avviene in un unico cilo di richiesta e risposta, dato che è tutto lato server. Dopo che tutta la richiesta è stata processata dal server arriva al client la pagina quindi puoi capire che c'è meno roundtrip(cosa che non avviene con il Redirect), quindi maggiori performance. Il Transfer si può utilizzare solo per richiamare pagine che si trovano nella stessa web application mentre con il redirect posso chiamare la pagina x anche di un'altra web app. Assodato che i due metodi "possono" produrre lo stesso risultato, arrivo alla tua domanda:
    hai la tua class Prodotto con il metodo Show allora per quanto detto sopra puoi fare una cosa del genere:
    codice:
    Public Sub Show(ByVal id As String)
    Dim ser As System.Web.HttpServerUtility = HttpContext.Current.Server
    ser.Transfer("Dettagli.aspx?Id=" + id)
    End Sub
    stessa cosa si può fare anche con l'oggetto HttpResponse.

  8. #8
    perla0279 non è in linea Scolaretto
    Post
    230
    ciao

    sto usando per un altro articolo le variabili session........


    Come faccio ad associare il valore ad una texbox???

    Nel senso che ho una casella tex box, dove vorrei che sulla prima di ogni pagina venisse stampato la variabile session proveniente da un altra pagina.....

    io sto provando in vari modi ma non mi riesce...

    codice:
     Articolo1 = idArticle
    Articolo1=texbox
    idArticle=variabile

  9. #9
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...posta sia il codice di inserimento del valore nella session, sia il codice di lettura dalla session(ad ogni modo ho scritto già tutto il codice necessario nel post del 16-01-2008) ed io ti dico dove stai sbagliando

  10. #10
    perla0279 non è in linea Scolaretto
    Post
    230
    nella prima pagina:
    codice:
        Protected Sub invioDati_Click(ByVal sender As Object, ByVal e As EventArgs) Handles invioDati.Click
    
    
            Session.Add("idArticle", 123)
            Session.Add("codicearticolo", 123)
    
    
    
        End Sub


    nella seconda pagina:
    codice:
    Dim idArticle As String = Session("idArticle").ToString()

    adesso volevo fare in modo che nel campo textbox venisse fuori in automatico quel valore.....

    come faccio????

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi