Datagrid

giovedì 12 gennaio 2006 - 12.22

eddyG Profilo | Junior Member

Sono sempre io!

facendo click su di un record della mia datagrid,vorrei poter risalire all'indice di tale record per poter poi aprire un'altra pagina con tutte le caratteristiche di tale record.

come posso fare?

micto27 Profilo | Senior Member

Puoi struttare la proprietà DataSetIndex esposta da ogni DataGridItem implementando l'evento ItemCommand del datagrid.

Ciao, Michele.

eddyG Profilo | Junior Member

Scusami,non ho ben capito,potresti essere più chiaro...
da dove vengono ricavati i datagriditem?devo formattare io la tabella?

Grazie

micto27 Profilo | Senior Member

Private Sub mioDatagrid_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles mioDatagrid.ItemCommand
Dim indice As Int32 = e.Item.DataSetIndex
End Sub

Qualsiasi postback venga attivato da controlli ASPNET (button, imagebutton, linkbutton, ecc.) inseriti negli item del datagrid
viene attivato sul server l'eevnto ItemCommand che prevede l'argomento [e].
Tale argomento espone le seguenti proprietà:
Item = datagriditem che ha scatenato il postback
CommandName = valore dell'omonima proprità del controllo sul quale si è cliccato
CommandArgument valore dell'omonima proprità del controllo sul quale si è cliccato
CommandSource valore dell'omonima proprità del controllo sul quale si è cliccato

Ciao, Michele.

eddyG Profilo | Junior Member

molto esauriente nella spiegazione....
Se avrò ancora bisogno sò già dove dirottare la mia attenzione.

Grazie mille.

eddyG Profilo | Junior Member

mi è appena sorto un altor dubbio...In quale situazione specifica viene svolta questa sub?

mi spiego meglio:come faccio per far fermare il debug all'entrata di questa sub?
Io ho messo un breakpoint sulla prima riga di codice ma non si ferma....

micto27 Profilo | Senior Member

Dunque, se sul datagrid hai un qualsiasi controllo aspnet che determina postback devi riuscire ad intercettare il passaggio dalla sub che implemente l'evento ItemCommand.
C'è però da fare attenzione ad una cosa e cioè al DataBind.

Se ad esempio nel Load della pagina tu eseguissi sempre e comunque il metodo mioDatagrid.DataBind il datagrid verrebbe "ricoperto" e l'evento ItemCommand non verrebbe attivato, quindi potresti ad esempio condizionare il databind alla proprietà "IsPostBack" della pagina.

If not me.IsPOstBack then
mioDatagrid.Datasource = .....
mioDatagrid.DataBind
end if

ciao

eddyG Profilo | Junior Member

Ciao Michele,
anche con i tuoi suggerimenti,esaurienti,sono riuscito a concludere molto poo per risolvere il mio problema e di conseguenza non sono riuscito a finire la mia applicazione.

Per questo motivo ora ti volevo chiedere l'ennesima cosa:
-Non è che mi sapresti indicare dove posso cercare qualche esempio di aaplicazione web...?

Grazie
Ciao

micto27 Profilo | Senior Member

Allego un file zip contenente una mini applicazione (molto molto rozza) con una pagina aspx contenente un datagrid, forse può chiarirti qualche dubbio circa i precedenti messaggi.

Ciao, Michele

eddyG Profilo | Junior Member

Ho scaricato la cartella sul mio desktop,l'ho unzippata e ho fatto partire il file denominato "WebAppl01.vbproj".
Mi apre l'ambiente di sviluppo ma non riesce ad aprire l'applicazione e mi visualizza a video un messaggio del tipo:
"Impossibile creare o aprire l'applicazione.è probabile che sul server Web locale non siano installati i componenti necessari.Eseguire il programma di installazione di Visual Studio .NET e aggiungere il componente Sviluppo Web".

Io riesco a far partire la mia applicazione,perchè non riesco a far partire questa applicazione..ho installato tutto il necessario.

micto27 Profilo | Senior Member

Forse ti conviene creare un nuovo progetto ASP.NET Application e in questo copiare i seguenti files fra quelli contenuti nel file zip:

Dataset1.xsd
Dataset1.vb
XMLFile1.xml
WebForm1.aspx
WebForm1.aspx.resx
WebForm1.aspx.vb

imposti WebForm1.aspx come start page e poi prova.

Ciao

eddyG Profilo | Junior Member

Rieccomi qui,di nuovo, a stressare!
Scusandomi della mia ignoranza,volevo chiederti delucidazioni riguardo al programma hce mi hai allegato in precedenza.

premendo sopra i collegamenti ipertestuali,come faccio a ricavarne il ritorno?

Grazie

micto27 Profilo | Senior Member

premendo sopra i collegamenti ipertestuali,come faccio a ricavarne il ritorno?

L'evento ItemCommand viene generato attivando il postback da uno qualsiasi dei controlli localizzati sul datagrid, per sapere quale dei controlli ha determinato il postback devi valutare la proprietà "CommandName" associata al singolo controllo (pulsante, linkbutton, ecc.). Nel caso dell'esempio che ti avevo inviato al pulsante è stato associato il CommandName = "comando1" e al linkbutton "comando2".

Il valore della proprietà CommandName ti viene passato come argomento dell'evento ItemCommand
(e.CammandName) e quindi nella "procedura evento" che gestisce l'evento ItemCommand puoi impostare

Select Case e.CommandName
Case "command1"
............
Case "command2"
............
End Select

Era questo il dubbio?
Ciao, Michele

eddyG Profilo | Junior Member

Ok,grazie...sono riuscito a ricavare il valore di ritorno.

eddyG Profilo | Junior Member

In che modo si può far aprire una nuova pagina "web form" dopo aver selezionato un record della datagrid?

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