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
Come settare il datakeyname di una gridview
lunedì 02 febbraio 2009 - 17.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Dan07
Profilo
| Newbie
4
messaggi | Data Invio:
lun 2 feb 2009 - 17:26
Ciao a tutti
di seguito il mio problema (sviluppo in vb.net con vs2005) : devo settare da codice la proprietà datakeyname di una gridview dopo che viene generata , nel senso che nel load la carico(senza settare la proprieta nel lato aspx) ma nell'evento rowcommand (o dopo un qualsiasi evento che posso scatenare subito dopo aver visualizzato il GV) devo settare questa proprietà ;
faccio un esempio:
Me.GridNominativi.DataKeyNames = .....
mi domandavo se devo mettere solo il nome del campo (es "id_mio") , come avrei fatto lato aspx oppure settare per ogni riga il valore dell'id che uso come datakey (ma non ho capito bene come si potrebbe fare)?
es.
Me.GridNominativi.DataKeyNames = New String() {"id_mio"}
scrivendo cosi ,prima di ricaricare il grid una seconda volta , l'evento rowcommand mi va in errore , come se non avesse preso il valore datakey
avete qualche suggerimento a proposito ???
grazie
Daniele
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
lun 2 feb 2009 - 18:19
ovviamente y datakey sono i valori chiave per il gridview, sia per modificare, eliminare, basta solo che le specifichi prima di fare il Databind del gridview una volta sola
Dim strKey() As String = {"id_campo1","id_campo2","id_campo3"}
GrVwCpp.DataKeyNames = strKey
dovresti solo crearti un vettore per essere gestito dal GridView, facci sapere.
"Che in questo 2009 i nostri codici possano sconvolgere il mondo."
Dan07
Profilo
| Newbie
4
messaggi | Data Invio:
mar 3 feb 2009 - 10:50
Ciao
grazie della risposta ... allora il mio problema è proprio farlo una sola volta nel senso che questa mia grid è in realta un WEBusercontrol che viene caricato dinamicamente all'interno di un ciclo (insieme ad altri wuc) in un altro WEBusercontrol che a sua volta fa parte di un oggetto di tipo wizard , scusa per il gioco di parole e per la poca chiarezza con cui mi sto cercando di spiegare ma il senso è che passa nel "load" (che in realta è la funzione di initialize(), la quale fa il bind della grid, che viene chiamata in questo ciclo subito dopo aver fatto un loadcontroll() ) piu volte quanti sono tutti i controlli e lo fa ad ogni evento scatenato ;
quindi se metto lato aspx il parametro datakeynames mi da: - errore elemento "id_" gia presente nel dizionario .... - perche appunto viene caricato piu volte e lo stesso se lo aggiungo come avevo fatto vedere nel primo post e quindi come mi hai mostrato tu ora perche passa piu volte per quel punto , inutile a dirti che il if not ispostback è inutile.
a questo punto non so dove settarlo .... ho provato nel rowdatabound del grid ma anche quello è un evento che si ripete ad ogni caricamento del controllo.
capisco la la confusione delle mie parole :) ma spero tu abbia capito lo stesso .
Daniele
ps(ho provato afare un controllo: se la proprietà datakey è settata allora non la setto piu , ma non sono riuscito e non so se poteva funzionare)
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
mar 3 feb 2009 - 11:17
devi darmi un paio di minuti per digerire questa spaghettata che mi hai appena lanciato in faccia.....aspetta che cerco di capire meglio
"Che in questo 2009 i nostri codici possano sconvolgere il mondo."
Dan07
Profilo
| Newbie
4
messaggi | Data Invio:
mar 3 feb 2009 - 11:37
ti capisco bene ... scusami :)
forse mi è venuta un idea ... sai come posso controllare se la proprietà datakey è gia stata settata ?
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
mar 3 feb 2009 - 11:49
in questo caso meglio di farti mangiare il pesce è che ti spiego come si pesca....
http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.gridview.datakeys.aspx
cosi ci risparmiamo il tempo per lo più difficile, aspettiamo i tuoi aggiornamenti
"Che in questo 2009 i nostri codici possano sconvolgere il mondo."
Dan07
Profilo
| Newbie
4
messaggi | Data Invio:
mar 3 feb 2009 - 18:13
in realta non mi serve il datakey .... forse risolvo cancellando il valore di datakeynames ma non ho trovato nessun esempio al riguardo
miagrid.DataKeyNames.clear(...,...,...)
non ho trovato come usare questa funzione , ho provato una cosa del genere ma da errore e non mi fa compilare
Dim values() As String
values = Me.miagrid.DataKeyNames
miagrid.DataKeyNames.clear(value,0,value.Lenght)
Daniele
balfaz
Profilo
| Expert
726
messaggi | Data Invio:
mar 3 feb 2009 - 19:15
infatti ti avevo inviato il link non per i datakey ma bensì per farti capire i metodi che ha questa proprietà. dammi un po di tempo e ti do una mano
"Che in questo 2009 i nostri codici possano sconvolgere il mondo."
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 !