Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Caricamento pagina
lunedì 20 ottobre 2008 - 15.47
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
lun 20 ott 2008 - 15:47
io carico la pagina ed inserisco in essa un gridview contenente valori presi da un database.aggiungo una colonna contenente un link che mi apre una nuova form
nella nuova form ho dei campi textbox riempiti con dei valori passati dalla form principale tramite querystring. alla pressione di un bottone in questa, form questi valori (modificati o no) vengono utilizzati da una query x la modifica e da un dbcommand. fin qui nessun problema. il fatto è che io quando mi ridireziono nella form principale, il gridview non viene + caricato...perchè?
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
lun 20 ott 2008 - 18:36
Ciao,
in che modo ti redirezioni nella pagina principale che contiene la gridview?
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
lun 20 ott 2008 - 18:47
Response.Redirect("FormDtlAssTask.aspx")
ho fatto anche un tasto annulla che mi ridireziona a quella pagina senza eseguire nessun'altro comando
il fatto è che non funziona lo stesso. la cosa è strana perchè ho anche un altra form e un altra pagina oltre a quelle che ho descritto sopra e fanno esattamente le stesse cose(ovviamente è collegata una tabella diversa). forse è il modo in cui collego le tabelle che nel primo caso funziona e nel secondo no. nel primo caso passo le tabelle semplicemente con il datasource ecc, mentre nel secondo la tabella viene aperta in base ai dati che gli passa la prima tabella (cioè clicco un hyperlinkfield, vengono passate le chiavi primarie e apre nella seconda form con la seconda tabella solo i record che mi servono)
non so se mi hai capito...
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
lun 20 ott 2008 - 20:40
Non ho capito proprio trobbo bene.
In ogni caso se vuoi collegare un gridview ad una sorgente di dati all'apertura della pagina devi mettere il richiamo al metodo che binda i dati nel page_load della pagina aspx.
Scusami se magari ripeto cose che già sai, ma appena una pagina viene richiamata (ad esempio con un redirect) scatena determinati eventi: preinit, init, load, unload, ecc ecc...mo li ho messi a casaccio :D.
Il più utilizzat è il page_load che ti permette di effetuare determinate operazioni proprio durante il caricamento e la creazione di essa.
Sicuramente dovrai interagire con quell'evento.
Ciao,
Luca.
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
mar 21 ott 2008 - 15:20
ok...non so come fare...
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
mar 21 ott 2008 - 22:52
penso che quello che PEPE vuol dirti è di fare il bind del gridview nell'evento load o nell'evento che più si adatta alla tua necessità facendo conto che quelli menzionati da PEPE sono quelli che si eseguono durante la carica o chiamata di una WebForm
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
mer 22 ott 2008 - 15:32
non so se è chiara come l'ho spiegato all'inizio...cmq non mi carica il gridview perchè quando "torno" nella gridview non trova i parametri di ingresso...
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
mer 22 ott 2008 - 15:34
lo puoi postare un po di codice???
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
mer 22 ott 2008 - 15:38
ma il codice anche se te lo posto è giusto perchè la mia grid viene caricata...solo che poi quando vado a modificarla (cioè apro una nuova web form alla quale passo i miei parametri da modificare in varie textbox, e con un tasto mi salva le modifiche tramite una query e mi fa tornare alla mia pagina contenente la grid), la grid non viene + caricata perchè i parametri di ingresso non arrivano (dato che in origine arrivano dalla webform di default)...devo trovare il modo di farla caricare cmq...
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
mer 22 ott 2008 - 16:01
e come fai a chiamare la webform che ti carica i nuovi dati (quella che poi ti fa tornare al GridView)??
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
mer 22 ott 2008 - 16:12
allora...parto da 0...
_web form di default: ho una griglia con una colonna hyperlinkfield che passa 2 campi chiave (tramite querystringparameter) e mi direziona nella webform1.
_webform1: ho una griglia popolata con i record che hanno come chiave i 2 parametri che gli ho passato dalla default. anche in questa griglia ho un hyperlinkfield che mi manda nella webform2 passandogli il valore dei campi di quel determinato record.
_webform2: ho un tot di textbox contententi i vari valori che gli ho passato (tramite l'istruzione request.querystring(parametro) ) dalla webform1. in questa form faccio, da codice, la query x la modifica (che funziona) e tramite l'istruzione response.redirect(webform1.aspx) torno nella mia form1 con la gridview, che però non carica perchè non riceve + i parametri di ingresso (che riceve dalla default)...questo è il mio problema...
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
mer 22 ott 2008 - 17:14
quello che adesso ti chiedo per non romperti .... lo schema di lavoro che hai già realizzato, non hai maniera di rinviare questi parametri per la ricarica del tuo datagrid anche quando torni indietro dalla webform2???,
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
mer 22 ott 2008 - 17:22
è proprio quello che non so come fare a farlo....
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
mer 22 ott 2008 - 17:41
puoi dirci qualcosa dei parametri che usi per caricare il gridview?, cosi possiamo cercare una soluzione alternativa
perché altrimenti potresti cercare di usare delle variabili session che potrai creare prima di andare al form dove introduci i dati dopo usare queste variabili per ricomporre l'url del form originale (inteso come il WebForm1)
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
mer 22 ott 2008 - 18:03
ti posto il codice markup x farti vedere come carico la grid...ovviamente solo quello che serve...
<asp:GridView ID="GridDtlAssTask" runat="server"
BackColor="#88EEFF"
BorderWidth="10px" BorderColor="#FFDDAA" GridLines="Horizontal"
CellSpacing="1" HorizontalAlign="Center"
HeaderStyle-BackColor="#CCFFCC"
Height="165px" Width="595px" AutoGenerateColumns="False"
DataKeyNames="TAID,TAIDIN,DAID,PRID" DataSourceID="SqlDataSource2"
AllowPaging="True" >
<PagerSettings Position="Top"/>
<Columns>
<asp:BoundField DataField="TAID" HeaderText="TAID" ReadOnly="True" SortExpression="TAID" />
<asp:BoundField DataField="TAIDIN" HeaderText="TAIDIN" ReadOnly="True" SortExpression="TAIDIN" />
<asp:BoundField DataField="DAID" HeaderText="DAID" ReadOnly="True" SortExpression="DAID" />
<asp:BoundField DataField="PRID" HeaderText="PRID" ReadOnly="True" SortExpression="PRID" />
<asp:BoundField DataField="PRDESC" HeaderText="PRDESC" ReadOnly="True" SortExpression="PRDESC" />
<asp:BoundField DataField="DAQTA" HeaderText="DAQTA" SortExpression="DAQTA" />
<asp:BoundField DataField="PRUDM" HeaderText="PRUDM" SortExpression="PRUDM" />
<asp:HyperLinkField Text="Modifica" datanavigateurlformatstring="~\FormDtlMod.aspx?TAID={0}&TAIDIN={1}&DAID={2}&PRID={3}&PRDESC={4}&DAQTA={5}&PRUDM={6}" DataNavigateUrlFields="TAID,TAIDIN,DAID,PRID,PRDESC,DAQTA,PRUDM"/>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnDelete2" runat="server" CommandName="Delete" OnClientClick="return window.confirm('Eliminare il record?');" Text="Elimina" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle HorizontalAlign="Center" Height="30" />
<AlternatingRowStyle BackColor="#CCFFCC"></AlternatingRowStyle>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:AttivitaConnectionString %>"
SelectCommand="SELECT DTLASSTASK.TAID,DTLASSTASK.TAIDIN,DTLASSTASK.DAID,ESPRODOTTI.PRID,ESPRODOTTI.PRDESC,DTLASSTASK.DAQTA,ESPRODOTTI.PRUDM FROM DTLASSTASK INNER JOIN ESPRODOTTI ON DTLASSTASK.DAPRID=ESPRODOTTI.PRID WHERE DTLASSTASK.TAID=@aTAID AND DTLASSTASK.TAIDIN=@aTAIDIN"
DeleteCommand="DELETE FROM DTLASSTASK WHERE TAID=@TAID AND TAIDIN=@TAIDIN AND DAID=@DAID" >
<SelectParameters>
<asp:QueryStringParameter Name="aTAID" QueryStringField="aTAID" DbType="Decimal"/>
<asp:QueryStringParameter Name="aTAIDIN" QueryStringField="aTAIDIN" DbType="Decimal"/>
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="aTAID" Type="Decimal" />
<asp:Parameter Name="aTAIDIN" Type="Decimal" />
<asp:Parameter Name="aDAID" Type="Decimal" />
</DeleteParameters>
</asp:SqlDataSource>
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
mer 22 ott 2008 - 20:00
Ciao, ho capito perfettamente il tuo problema perchè ce l'ho avuto anche io e l'ho risolto in questo modo.
Vado per esempi che mi sembra la soluzione piu giusta.
Ho una url con parametri tipo pippo.aspx?ID=001&LANG=it&TYPECONF=FFRT3919
In questa url ho 3 parametri passati in querystring: ID, LANG, TYPECONF.
La cosa ch ho fatto nel page_load della pagina pippo.aspx è stata memorizzare nel viewstate questi parametri in modo da mantenermeli anche durante i postback. Quindi
Protected sub page_load(bla bla bla)
if not page.ispostback
viewstate.add("ID", request.querystring("ID"))
viewstate.add("LANG", request.querystring("LANG"))
viewstate.add("TYPECONF", request.querystring("TYPECONF"))
end if
end Sub
Adesso, nella pagina pippo.aspx avrai sicuramente un bottone di conferma. Questo bottone oltre ad accettare le tue modifiche/operazioni, ti permette di tornare indietro con un redirect.
Quindi, nel metodo che fa il redirect, reimposti nella querystring i parametri del viewstate tipo:
protected sub button1.click(blablabla) handles button1.click
...
...
...
tue operazioni
...
...
...
response.redirect("paginainiziale.aspx?ID" & viewstate("ID") & "&LANG=" & viewstate("LANG") ecc ecc ecc)
end sub
In questo modo la pagina iniziale si ritroverà nella url gli stessi parametri che gli hai passato in precedenza e potrà ricaricarti i valori giusti.
Spero di esserti stato d'aiuto,
Luca.
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
gio 23 ott 2008 - 09:23
ciao...si + o - ho capito...però ho una domanda...
io dalla prima ala seconda form passo 7 valori, compresi i 2 campi chiave, ma è solo tramite questi ultimi che la prima form apre la gridview con i record che mi interessano.
quindi io devo aggiungere al viewstase solo questi 2 o tutti e 7?
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
gio 23 ott 2008 - 09:27
oooppss
, sono stati più veloce di me in dare la risposta, l'unico che come ti indicavo nel mio ultimo thread, io avrei usato delle variabile session per ricomporre l'url tale e quale l'ha fatto PEPE, comunque anche quella che lui ti da e molto valida
.
boh, almeno cosi vedi che ce sempre qualcuno disposto a dare una mano come deve essere
mi sembra nello personale che hai un serio inghippo nella struttura del tuo programma, comunque adesso dovresti valutare se i parametri che usi per entrare alla WF_1(WebForm) che mi sembra aver capito sono 7 ti servono per chiamare la WF_2, valuta che comunque può essere che quando torni indietro alla WF_1 tu magari vorresti inserire altri items, quindi a questo punto sarebbe necessario gestire sempre i 7 parametri dell'url, altrimenti puoi solo usare i 2 parametri....ma se fosse cosi a questo punto mi chiederei a cosa ti servono gli altri 5 parametri???
(spero essere stato abbastanza chiaro)
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
gio 23 ott 2008 - 09:38
Ciao,
devi aggiungere quelli che ti servono per ricomporre la gridview.
Se ti servono tutti e 7 salvali tutti, altrimenti salva solamente quelli necessari...giusto per non impastrocchiare la url di valori inutili :D.
L'importante è che quando passi dalla pagina 1 a pagina 2, pagina 2 a pagina 3, pagina 3 a pagina 2, riesci a conservarti i parametri per ricaricare la grid.
Saluti,
Luca.
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
gio 23 ott 2008 - 10:33
io dalla wf1 all wf2 passo 2 parametri x aprire la grid
dalla wf2 alla wf3 passo 7 parametri (che vengono visualizzati nelle 7 texbox)
quindi x tornare alla wf2 e riaprire la grid dovrei passare solo 2 parametri...no? solo che non me la apre...ho sbagliato qlcs...mi aiutate?
posto il codice che serve della wf3
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
valore1 = Request.QueryString("TAID")
TextTAID.Text = valore1
valore2 = Request.QueryString("TAIDIN")
TextTAIDIN.Text = valore2
valore3 = Request.QueryString("DAID")
TextDAID.Text = valore3
valore4 = Request.QueryString("PRID")
TextPRID.Text = valore4
valore5 = Request.QueryString("PRDESC")
TextPRDESC.Text = valore5
valore6 = Request.QueryString("DAQTA")
TextDAQTA.Text = valore6
valore7 = Request.QueryString("PRUDM")
TextPRUDM.Text = valore7
ViewState.Add("TAID", Request.QueryString("TAID"))
ViewState.Add("TAIDIN", Request.QueryString("TAIDIN"))
End If
End Sub
'Bottone Annulla
Protected Sub ButtonAnnulla_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonAnnulla.Click
Response.Redirect("FormDtlAssTask.aspx?TAID=" & ViewState("TAID") & "&TAIDIN=" & ViewState("TAIDIN"))
End Sub
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
gio 23 ott 2008 - 12:00
lo so che è più comodo inviare questi dati da mettere direttamente del textbox, ma si usasi solo i campi chiave per fare una nuova SELECT e di questa maniera caricarli direttamente dal DataTable?, almeno cosi puoi lavorare con i tuoi 2 campi per la WF_2
e poi verifica l'url che ti fa tornare indietro alla WF_2 (magari c'è qualche errore nella stringa)
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
gio 23 ott 2008 - 12:13
gli altri valori glieli passo perchè:
1_voglio visualizzarli
2_mi servono in quella form x l'update...
cmq tu fici che se non funziona è perchè c'è un errore nella stringa, nell'url?
Response.Redirect("FormDtlAssTask.aspx?TAID=" & ViewState("TAID") & "&TAIDIN=" & ViewState("TAIDIN"))
mi torna nella wf2 il problema è che non gli passa i dati ancora...
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
gio 23 ott 2008 - 12:17
invece di
Response.Redirect("FormDtlAssTask.aspx?TAID=" & ViewState("TAID") & "&TAIDIN=" & ViewState("TAIDIN"))
usa
Response.Redirect("FormDtlAssTask.aspx?TAID=" + ViewState("TAID") + "&TAIDIN=" + ViewState("TAIDIN"))
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
gio 23 ott 2008 - 12:29
non funziona...
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
gio 23 ott 2008 - 12:39
ma domanda, l'url di ritorno com'è? in caso fosse sbagliato prova a verificare che le variabili che inserisci nel viewstate no siano vuote
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
gio 23 ott 2008 - 14:29
Ciao,
potrebbe essere che la compilazione dell'url sia errata in quanto il motore di asp net codifica i caratteri strani nel relativo codice html.
Una volta che sei sicuro che il tuo imput non sia corrotto fai cosi:
response.redirect(httputility.htmldecode("tuapagina.aspx?ID=" & viewstate("dscdscds") ecc ecc ecc)))
Praticamente includi tutta la tua url nel metodo hrmldecode.
Altra cosa, che linguaggio usi per lo sviluppo? Se usi VB allora la concatenazione di fa con il carattere & altrimenti in c# usi il +.
Ciao,
Luca.
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
gio 23 ott 2008 - 15:33
ok...tutto apposto...grazie raga
Torna su
Stanze Forum
Elenco Threads
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 !