Problema aggiornamento datagrid dopo "DELETE"

mercoledì 14 gennaio 2009 - 15.58

jampicoll Profilo | Junior Member

Ciao a tutti,
ho un piccolissimo problema ma che non riesco a risolvere...
Ho una detailview collegata ad una grid view (quando clicco "select" sulla gridview viene aperto il detailtview con tutti le informazioni del record collegato).
Nel detailview ho abilitato l'eliminazione che realmente viene fatta ma vorrei che al momento che clicco su "elimina" viene aggiornato anche il gridview con l'eliminazione del record selezionato.
Come posso fare???

Vi ringrazio anticipatamente, a presto.
Giampiero.

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao!

>Nel detailview ho abilitato l'eliminazione che realmente viene
>fatta ma vorrei che al momento che clicco su "elimina" viene
>aggiornato anche il gridview con l'eliminazione del record selezionato.
>Come posso fare???
Essendo la sorgente la medesima tra la datagrid e la detailsview, una volta eliminato il record con la seconda basta effettuare il rebind anche della griglia.
Supponi di avere una datagrid chiamata DG1, fai DG1.DataBind() ed il gioco è fatto, la griglia si aggiorna andando a richiedere nuovamente alla sorgente il refresh..


>Vi ringrazio anticipatamente, a presto.
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

jampicoll Profilo | Junior Member

ma come faccio ad associare la funzione al click?

il codice è questo:
<Fields>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ButtonType="Button"/>
</Fields>
Giampiero.

alx_81 Profilo | Guru

>ma come faccio ad associare la funzione al click?
prova ad utilizzare uno dei seguenti eventi:

DetailsView.ItemDeleting Event
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.detailsview.itemdeleting.aspx

DetailsView.ItemCommand Event
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.detailsview.onitemcommand.aspx

Il primo viene invocato quando il record è stato cancellato, il secondo alla pressione di un pulsante (qualunque) del detailsview. Nel secondo caso, ti consiglio di definire a mano il tuo ButtonField per cancellare il record, impostando un CommandName ad esempio a "DELETE". In questo modo, puoi gestire l'evento ItemCommand chiedendoti se il commandname del pulsante è "DELETE" allora cancella e riesgui il bind dei dati. Vedi l'esempio nel secondo link.
--

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

jampicoll Profilo | Junior Member

io ho fatto in questo modo ma non va...

protected void DetailviewViewDeleteEventHandler(object sender, EventArgs e)
{
GridView1.DataBind();
}

.....
<asp:DetailsView OnItemDeleting="DetailviewViewDeleteEventHandler"........

Come faccio?


Giampiero.

alx_81 Profilo | Guru

>io ho fatto in questo modo ma non va...
allora usa l'altro metodo. Crea un ButtonField, assegnagli il CommandName="DELETE" e gestisci l'evento ItemCommand.
A quel punto, in e (l'eventargs) avrai la proprietà CommandName e allora ti chiederai se vale "DELETE", ed in quel caso, esegui prima la cancellazione e poi il binding dei dati.
--

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