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
[ASP 2.0/vb/sql 2005 exp] Leggere valore campi formview e binding su g...
giovedì 28 agosto 2008 - 11.53
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Devil
Profilo
| Junior Member
109
messaggi | Data Invio:
gio 28 ago 2008 - 11:53
Ciao a tutti,
Sto cercando di fare una cosa di questo tipo:
Una pagina in cui c'è una formview composta da
alcune text box che vengono settate con valori provenienti da un sqldatasource, una gridview e
poi ancora text box .
Diciamo per esempio (per capire un pò la logica del progetto) che nelle prime box ci sono dati come nome cognome data nascita, altezza e altri dati personali di un progettista, poi nella grid view c'è l'elenco dei record che indicano ad esempio i progetti realizzati con alcuni dati, poi nelle altre text box ci sono ad esempio data assunzione,ore permesso o altro. (Devo mantenere una struttura il più simile a questa)
Sperando di essere stato esauriente, vi pongo alcune domande:
Per ottenere i record dei progetti relativi ad ogni progettista devo eseguire una query con parametro (es IDProgettista) ma come faccio ad accedere ad una text box e leggerne il valore? Come posso accedere alla gridView e bindare il risultato?
Ipotizzando di riuscire a leggere il valore, ogni volta che cambia il progettista (cioè scorrendo i record con la formView) devo connettermi al db per interrogarlo con una nuova query parametrica e ri-bindare i valori. E' una cosa giusta?
Se non voglio usare una text box per memorizzare l'id del progettista, è possibile usare un campo nascosto?
La costruzione della pagina è esatta oppure devo metter fuori dalla formView la gridview?
Grazie anticipatamente per eventuali indicazioni.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 28 ago 2008 - 12:07
>Ciao a tutti,
Ciao!
>Per ottenere i record dei progetti relativi ad ogni progettista
>devo eseguire una query con parametro (es IDProgettista) ma come
>faccio ad accedere ad una text box e leggerne il valore?
Utilizzando il metodo FindControl nell'evento DataBound, andando a ricercare per l'id del controllo assegnato nella formview. Con il metodo FindControl ritorni l'istanza del controllo e poi puoi semplicemente castarla in un TextBox per ricavarne il valore della proprietà Text.
Control.FindControl Method (string)
http://msdn.microsoft.com/en-us/library/486wc64h.aspx
>Come posso accedere alla gridView e bindare il risultato?
Allo stesso modo puoi cercare la gridview, tramite il metodo descritto prima, andando a cambiare il datasource della griglia con quello "filtrato" ed eseguendo il DataBind. Ma preferirei mettere fuori la griglia dalla formview..
>Ipotizzando di riuscire a leggere il valore, ogni volta che cambia
>il progettista (cioè scorrendo i record con la formView) devo
>connettermi al db per interrogarlo con una nuova query parametrica
>e ri-bindare i valori. E' una cosa giusta?
è una soluzione
Potresti anche pensare di fare una griglia per l'elenco dei progettisti ed al select valorizzare una griglia ulteriore sotto..
Dipende dal layout che vuoi ottenere..
>Se non voglio usare una text box per memorizzare l'id del progettista,
>è possibile usare un campo nascosto?
Puoi tenerlo nel datasource senza renderlo visibile nella formview. Poi, per accedere al valore, devi ricavare il datasource della formview e ricavare il valore che ti serve.
>
>La costruzione della pagina è esatta oppure devo metter fuori
>dalla formView la gridview?
Io la metterei fuori, anche per facilità di gestione.
>Grazie anticipatamente per eventuali indicazioni.
di nulla!
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Devil
Profilo
| Junior Member
109
messaggi | Data Invio:
gio 28 ago 2008 - 14:32
Ottimo..era proprio il findcontrol che i serviva!!!
Grazie
Binding eseguito!!
Mi hai detto poi di ricavare l'id dal datasource della formView. E' vero, ma dentro ci sono tanti id (tanti record ricavati dalla select sulla tabella progettisti) mentre io voglio che nella gridview vengano visualizzati solo i lavori relativi al progettista che si sta visualizzando in quel momento ecco perchè cerco come riferimento sicuro un id (magari nascosto) che naturalmente cambierà ogni volta che , attraverso la formView, scorro i vari record e di conseguenza verrà aggiornata la pagina con tutti i nuovi dati. Sbaglio a ragionare così?
Probabilmente, se me lo richiederanno, svilupperò il discorso griglia-->select-->dettaglio..io lo propongo
Avevo pensato di mettere fuori la gridview ma mi cambia la grafica e volevo mantenere un'interfaccia simile a quella che fu a suo tempo sviluppata in access 97 da altri e che è in uso da parecchio tempo.
Cosa ne pensi?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 28 ago 2008 - 14:42
>Mi hai detto poi di ricavare l'id dal datasource della formView.
>E' vero, ma dentro ci sono tanti id (tanti record ricavati dalla
>select sulla tabella progettisti) mentre io voglio che nella
>gridview vengano visualizzati solo i lavori relativi al progettista
>che si sta visualizzando in quel momento ecco perchè cerco come
>riferimento sicuro un id (magari nascosto) che naturalmente cambierà
>ogni volta che , attraverso la formView, scorro i vari record
>e di conseguenza verrà aggiornata la pagina con tutti i nuovi
>dati. Sbaglio a ragionare così?
Allora, la formview avrà un oggetto come datasource, che ad esempio potrebbe essere un datatable. All'interno di esso ci sarà un campo "IDProgettista" che corrisponde ai dati visualizzati. Tu basta che vai a prendere l'IDProgettista corrente..
Poi usi quello e lo passi alla griglia..
>Avevo pensato di mettere fuori la gridview ma mi cambia la grafica
>e volevo mantenere un'interfaccia simile a quella che fu a suo
>tempo sviluppata in access 97 da altri e che è in uso da parecchio
>tempo.
Se tieni fuori dal formview la griglia, puoi ottenere comunque un layout simile ad un master detail di access.
basta lavorare coi div e con gli stili.. Sinceramente non vedo un grosso legame tra i controlli e la grafica, con la quale poi, alla fine, fai quasi tutto quello che vuoi. Prova a pensare ad un formview, che scorre record per record i progettisti.. Ogni volta che ti sposti su un record differente, valorizzi la source di una gridview che è esterna alla form view.. Non è necessario che sia al suo interno.. Non trovi?
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Devil
Profilo
| Junior Member
109
messaggi | Data Invio:
gio 28 ago 2008 - 15:04
ah ecco...id "corrente"..è vero..
Per caso sai come si chiama l'evento della formview per il quale eseguirò l'aggiornamento della gridview?
(così su due piedi...altrimenti dopo lo cerco!)
Si si lo so che grafica e funzionalità sono ben separati e gestibili diversamente e probabilmente la poca pratica mi fa perdere in un bicchier d'acqua.
anche con i css sono alle prime armi per cui ci vuol tempo comunque pare che sia riuscito ad ottenere qualche risultato.
Un dubbio: interrogare il db ad ogni cambio di record nella form non rallenta il tutto e carica la rete? Non che sia un grosso problema perchè comunque non penso che mi troverò mai più di 4 o 5 utenti connessi contenporaneamente in quanto l'applicazione è aziendale e riservata solo ad un particolare ufficio ma in termini di velocità gradirei risposte veloci. (onde evitare lamentele dei colleghi!)
?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 28 ago 2008 - 15:40
>ah ecco...id "corrente"..è vero..
>
>Per caso sai come si chiama l'evento della formview per il quale
>eseguirò l'aggiornamento della gridview?
>(così su due piedi...altrimenti dopo lo cerco!)
mah guarda, secondo me puoi guardare il PageIndexChanged oppure lo stesso DataBound..
>Si si lo so che grafica e funzionalità sono ben separati e gestibili diversamente e probabilmente la poca pratica mi fa perdere in un bicchier d'acqua.
>anche con i css sono alle prime armi per cui ci vuol tempo comunque pare che sia riuscito ad ottenere qualche risultato.
>Un dubbio: interrogare il db ad ogni cambio di record nella form non rallenta il tutto e carica la rete? Non che sia un grosso
>problema perchè comunque non penso che mi troverò mai più di 4 o 5 utenti connessi contenporaneamente in quanto l'applicazione
>è aziendale e riservata solo ad un particolare ufficio ma in termini di velocità gradirei risposte veloci. (onde evitare lamentele dei colleghi!)
No, se vai per id e hai correttamente impostato gli indici sul database, il traffico è ridotto con quel bassissimo numero di utenze..
Sarebbe peggio caricare tutto un resultset di tante righe..
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Devil
Profilo
| Junior Member
109
messaggi | Data Invio:
gio 28 ago 2008 - 15:44
Grazie di tutto..ottima consulenza!
Ciao alla prossima!
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 !