Asp.net passaggio di variabili

martedì 28 febbraio 2006 - 19.07

BrandonHeat Profilo | Junior Member

Ciao a tutti!!
Ho una pagina in cui inserisco dei dati..questi dati li invio in un'altra pagina..

<% dim dato1 as string dim dato2 as string dato1=request.form("Dat1") dato2=request.form("Dat2") %>

Ora vorrei passare le variabili dato1 e dato2 ad un'altra pagina..come posso fare?
Grazie mille per l'aiuto!!!
Ciao!
Brandon Heat

fguida Profilo | Expert

Puoi utilizzare l'oggetto HttpRequest, e quindi il querystring...
Per passare da una webForm ad un'altra puoi anche utilizzare il Server.Transfer() invece del Response.Redirect()
Ciao
Francesco

BrandonHeat Profilo | Junior Member

Ciao!Innanzitutto grazie per la risposta..
però purtroppo nemmeno con i tuoi suggerimenti sono riuscito a venire fuori da questo problema..
provo a rispiegare il mio problema,i risultati che voglio ottenere e i risultati che invece mi vengono..
Ho una pagina default.aspx..in questa pagina ho due textbox e tre radio button..questi controlli sono dentro una form, form che spedisce i dati ad una seconda pagina, chiamata attendere.aspx..i dati dalla default.aspx li mando in questo modo:

<form action="Attendere.aspx" method="Post">

A questo punto nella pagina attendere.aspx prendo i dati che mi servono e li metto in delle variabili, in questo modo:

ValDal = Request.Form("DatDal") ValAl = Request.Form("Datal") selTab = Request.Form("Selezione")

Dopo questo spedisco il contenuto di queste variabili ad un'altra pagina che chiamo VisualizzaPerPeriodo.aspx, passando i parametri via url in questo modo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

o se preferite:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Nella pagina VisualizzaPerPeriodo richiedo i dati in questo modo:

dataDal = Request.QueryString.Get("DataDal")

Il risultato che vorrei ottenere è il seguente:
nella pagina principale inserisco i dati, clicco un pulsante e viene visualizzata la pagina attendere.aspx (una semplice pagina con scritto attendere prego o simile); intanto viene caricata la pagina VisualizzaPerPeriodo.aspx..una volta caricata, sparisce la pagina attendere.aspx e compare la pagina VisualizzaPerPeriodo.aspx..
Quello che ottengo, invece, è che la pagina attendere.aspx non viene visualizzata una volta premuto invio dalla default.aspx..In pratica una volta premuto invio dalla pagina default.aspx, essa mi rimane visualizzata e intanto mi carica la pagina Attendere.aspx..
Una volta caricata la pagina Attendere.aspx mi visualizza nella pagina Attendere.aspx, il contenuto della pagina Attendere.aspx con in più il contenuto della pagina VisualizzaPerPeriodo.aspx..
Spero di essere stato chiaro nella spiegazione e spero tanto che qualcuno mi possa aiutare!!!
Ciao e buona giornata a tutti!!!
Brandon Heat

fguida Profilo | Expert

errore

fguida Profilo | Expert

Guarda, dato che non ho ben compreso ciò che avviene nella tua applicazione, ti posto un link Microsoft, ove viene spiegato molto bene il passaggio di dati fra due weborm; è utile perchè ti mostra come fare nel caso di codice in-line o sottostante, quest'ultimo a mio avviso più interessante
Buon lavoro!

http://msdn.microsoft.com/library/ita/default.asp?url=/library/ITA/cpguide/html/cpconpassingservercontrolvaluesbetweenpages.asp

Francesco

BrandonHeat Profilo | Junior Member

Grazie ancora..ora guardo il link..adesso mi visualizza la pagina VisualizzaPerPeriodo.aspx giustamente..una sola cosa..perchè non mi visualizza la pagina di mezzo (Attendere.aspx)? i dati li spedisco con una form html normale, proprio come ti ho postato prima..fa vedere nella barra sotto che sta caricando quella pagina ma non viene visualizzata, viene visualizzata direttamente la pagina VisualizzaPerPeriodo.aspx..non capisco perchè, se potresti farmi questo ultimo favore..Grazie mille..
La mia applicazione non fa altro che mandare dati da una pagina ad un altra e in questa elaborarli e visualizzare il risultato..siccome ci mette un po a visualizzare i risultati, in mezzo a queste due pagine ho messo un altra pagina con su un messaggio d'attesa..quindi la prima invia i dati alla pagina di attesa, la pagina di attesa invia i dati alla seconda pagina..quello che voglio è che mentre la seconda elabora i dati viene visualizzata la pagina di attesa, finita l'elaborazione viene visualizzata la seconda..il problema è che non mi visualizza la pagina di attesa..grazie mille e spero di essere stato decisamente più chiaro!!
Ciao!!!
Brandon Heat

fguida Profilo | Expert

Se la pagina intermedia non contiene nessun layout.. oppure non gli passi parametri che deve visualizzare, allora ti reindirizza direttamente alla pagina successiva; quando utilizzavo asp 3.0, un buon trucco per passare parametri era il creare una pagina web esclusivamente lato server, nella quale facevo "viaggiare i dati", ma senza visualizzarli; a questo punto mi rigettavo sulla pagina finale, con la formattazione desiderata.
Se però, tu devi far visualizzare una oagina con la scritta "Attendere...", e poi ributtarti su quella finale automaticamente, credo che il redirect ti faccia "saltare" questa visualizzazione, essendo una lettura veloce... prova nel verificare l'esatto reindirizzamento delle pagine.
Se non ho capito il problema, perdonami...

Francesco

BrandonHeat Profilo | Junior Member

Grazie, il problema l'hai centrato perfettamente..il layout è uguale, solo che non funziona!!
Comunque nella pagina intermedia acquisisco i dati con la request.form mettendoli in delle variabili, che passo via url alla seconda pagina con il response.redirect..anch io ho pensato che mi rindirizza automaticamente saltando la visualizzazione della seconda, come posso fare??Deve rimanere visualizzata la pagina intermedia intanto che vengono spediti i dati all'altra pagina..poi verrà visualizzata l'altra pagina..Grazie mille!!!!
Brandon Heat

fguida Profilo | Expert

Dato che le variabili le passi da una webForm all'altra, e quindi sei certo che passando dalla seconda alla terza i dati sono stati ricavati dalla prima, potresti mettere un timer, un qualcosa che rallenti il passaggio dalla seconda alla terza webForm;a questo punto saprai che i dati sono comunque arrivati alla webForm finale, ma almeno hai il tempo di visualizzare la pagina intermedia.

Francesco

BrandonHeat Profilo | Junior Member

Grazie..in che modo posso fare ciò?
Mi faresti un piccolo esempio??
Non c'è nessun altro modo oltre al timer?Qualcosa al posto del response.direct o che ne so, un altro modo per passare variabili da una form all'altra?
Grazie mille!!!
Brandon Heat

fguida Profilo | Expert

Ascolta, è stata una giornata pesantissima.. ma ti ho trovato questo link interessante, che forse fa al caso tuo:

http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=69a7c7bb-939a-4777-aceb-2d9ebbe35b85

Francesco

BrandonHeat Profilo | Junior Member

Grazie per la risposta e mi scuso se ti ho rotto le palle dopo una giornata pesante..grazie mille, ora controllo il link..ciao!!!!
Brandon Heat

fguida Profilo | Expert

Figurati, non c'è problema..
Spero almeno ti sia servito

Francesco

Anonimo Profilo | Senior Member

Se ho capito bene dalla seconda fai il redirect sulla terza, il che vuol dire che sul client non ci vai ed è per questo che non viene visualizzata.

BrandonHeat Profilo | Junior Member

Ho risolto, grazie a tutti..era un problema di variabili nel tag meta..
Ciao!!!
Brandon Heat

WolfWood Profilo | Newbie

Ciao so che è un post un po vecchiotto ma mi son ritrovato con lo stesso problema!!!!

Sei riuscito a visualizzare la pagina di mezzo???
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5