Editare solo determinati campi di una grid view

lunedì 15 settembre 2008 - 11.11

Simpz Profilo | Junior Member

Ciao a tutti,
il mio problema è rendere editabili solo determinati campi di una gridview. La gridview è stata fatta usando i tempate field dove dentro ci sono degli ItemTemplate... come posso fare a far diventare solo certe celle di una riga, alla pressione del comando edita, dei text box editabili?

Grazie a tutti

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao!

>il mio problema è rendere editabili solo determinati campi di
>una gridview. La gridview è stata fatta usando i tempate field
>dove dentro ci sono degli ItemTemplate... come posso fare a far
>diventare solo certe celle di una riga, alla pressione del comando
>edita, dei text box editabili?
Basta che nell'itemtemplate metti dei controlli readonly (o magari delle label) e poi agigungi un EditItemTemplate per l'editing:

TemplateField.EditItemTemplate Property
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.edititemtemplate.aspx

>Grazie a tutti
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

Simpz Profilo | Junior Member

Ho notato però che devo premere 2 volte il link edit per far si che me lo faccia editare... o devo mettere qualche comportamrento particolare nell'evento rowediting?

alx_81 Profilo | Guru

>Ho notato però che devo premere 2 volte il link edit per far
>si che me lo faccia editare... o devo mettere qualche comportamrento
>particolare nell'evento rowediting?
no, qui c'è qualcosa che non va nel codice, deve andare.. prova a fare debug per capire come mai ha quello strano comportamento..

--

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

Simpz Profilo | Junior Member

conta che nell'evento rowediting ho messo solo la riga

GridView.EditIndex = e.NewEditIndex;

alx_81 Profilo | Guru

>conta che nell'evento rowediting ho messo solo la riga
>
>GridView.EditIndex = e.NewEditIndex;
manca il Gridview.DataBind()
--

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

Simpz Profilo | Junior Member

e quello basta a risolvere il problema? non dovrebbe bindare il valore? o a comunque a che vedere con l'aggiornamento della grid view?
Chiaramente lo metto subito... Grazie

alx_81 Profilo | Guru

>e quello basta a risolvere il problema? non dovrebbe bindare
>il valore? o a comunque a che vedere con l'aggiornamento della
>grid view?
Diciamo che collega la sorgente dati alla griglia nel template corrente
--

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

Simpz Profilo | Junior Member

Ottimo, però ora mi è sorto un altro problema, sembra che se l'evento lo gestisco con gli ajaxtoolkit non vada... ci sono delle risposte in proposito?

no no colpa mia e degli update panel innestati... tutto regolare... ora mi servirebbe una mano per l'evento updating una volta che ho updatato la textbox, praticamente voglio che il dato sia visibile nella label che dovrebbe ritornare quando premo aggiorna... dritte??? (mi scuso per la niubbagine!!!)

alx_81 Profilo | Guru

>ora mi servirebbe una mano per l'evento updating una volta che
>ho updatato la textbox, praticamente voglio che il dato sia visibile
>nella label che dovrebbe ritornare quando premo aggiorna... dritte???
>(mi scuso per la niubbagine!!!)
Eh devi lanciare la query di update e poi mettere l'editIndex a -1, facendo alla fine il DataBind()
--

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

Simpz Profilo | Junior Member

mmm praticamente dovrei beccare la textbox e leggere quello che c'è dentro e assegnarlo alla label?

alx_81 Profilo | Guru

>mmm praticamente dovrei beccare la textbox e leggere quello che
>c'è dentro e assegnarlo alla label?
No.. devi prendere il valore della textbox, aggiornare il record a database e rifare il binding, mettendo l'ItemIndex a -1.
In poche parole aggiorni il DB, e poi cambi lo stile della griglia andando a "rileggere" da DB il dato aggiornato

--

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

Simpz Profilo | Junior Member

mmm il mio dtatbase è una lista di oggetti però... quindi dovrei andare a modificare il campo specifico dell'oggetto specifico della mia lista di oggetti. Ho capito bene?

alx_81 Profilo | Guru

>mmm il mio dtatbase è una lista di oggetti però... quindi dovrei
>andare a modificare il campo specifico dell'oggetto specifico
>della mia lista di oggetti. Ho capito bene?
Dovresti fare l'aggiornamento nella collezione, sì.. e poi cambi l'itemIndex ed infine, DataBind()

--

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

Simpz Profilo | Junior Member

perfetto, ora l'unico problema è beccare il campo della textbox nella gridview... e purtoppo con questa sequenza di comandi non riesco a beccare l'aggiornamento che scrivo sulla text box
int index = gdv.EditIndex; GridViewRow row = gdv.Rows[index]; TextBox textbox = (TextBox)row.FindControl("gdvTextbox"); string str = textbox.Text;
questo codice è nella parte del rowupdating non capisco perchè il valore finale di str è quello iniziale e non quello aggiornato da me...

alx_81 Profilo | Guru

>perfetto, ora l'unico problema è beccare il campo della textbox
>nella gridview... e purtoppo con questa sequenza di comandi non
>riesco a beccare l'aggiornamento che scrivo sulla text box
Dovresti avere fra gli argomenti anche la collezione dei Nuovi Valori:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridviewupdateeventargs.newvalues.aspx

e.NewValues
--

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
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5