DataGridView visualizzare i dati selezionati nei textbox dopo una rice...

sabato 05 aprile 2008 - 13.29

jtpsala Profilo | Senior Member

Saluto a tutti gli utenti di questo meraviglioso Forum.

Sono ancora qui ad abusare della vostra immensa cortesia.

Nella mia form principale, ho inserito due testbox e un Button che mi servono per definire delle ricerche.
Una volta digitata la frase da cercare nell'evento Click del Button ho inserito questo codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Bene, i risultati della ricerca vengono visualizzati all'interno della mia DataGridView e fono a qui tutto regolare.
Sopra questa DataGridView ho inserito dei textbox all'interno dei queli appaiono i dati per riga di ciò che seleziono nella DataGridView.

Questo però non accade, perchè dopo aver eseguito la suddetta ricerca, i dati nelle textbox rimangono alla riga 1 e non si aggiornano man mano che selezione le altre righe nella DGV.

Avete qualche soluzione?

Preciso che prima di eseguire la suddetta ricerca, selezionando le vari righe nella DGV i dati nelle textbox variano a seconda di ciò che seleziono.

Vi ringrazio in anticipo.

TOPOAMORE Profilo | Expert

Ciaoo
Non mi e tanto chiaro quello che vuoi fare...
Percaso a ogni riga del datagrid che selezioni si deve aggiornare la textbox con lo stesso dato del datagrid?
Es

Selezioni la riga 1 del datagrid = textbox
selezioni la riga 2 del datagrid = textbox

e cosi via mano a mano che selzioni?

jtpsala Profilo | Senior Member

Si proprio cosi.

TOPOAMORE Profilo | Expert

Ora non sapendo da quante colonna sia fatto il datagrid prova cosi

isto e considerato che il datagrid non tiene in consederazione del cambio di righe(almeno che io sappia) facciamo cosi

nell'evento cellchanging inserisci

Me.TextBox.Text = Me.DataGrid.Item(Me.DataGrid.CurrentRowIndex, numerocolonna)

il numerocolonna parte da zero

Vedi se funziona
Caiooo

jtpsala Profilo | Senior Member

L'evento CellCanging non l'ho trovato nel DataGridView.
Ho provato in questo modo:
Private Sub CaricoDataGridView_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CaricoDataGridView.SelectionChanged
Me.MarcaTextBox.Text = Me.CaricoDataGridView.Item(Me.CaricoDataGridView.CurrentRowIndex, 0)

End Sub
ma da errore ciò che è scritto tra parentesi.

TOPOAMORE Profilo | Expert

scusami l'evento e

CurrentCellChanged

prova e fammi sapere

Oltretutto quante colonne ci sono nel datagrid e quale devi visualizzare?
Dimmi che errore c'e' scritto

jtpsala Profilo | Senior Member

Nel DataGridView ho 5 colonne (ID, Marca, Modello, Quantità e Costo) e le devo visualizzare tutte nei rispettivi textbox.
L'errore che genera è questo:

'CurrentRowIndex' non è un membro di 'System.Windows.Forms.DataGridView'.

TOPOAMORE Profilo | Expert

che vb usi?
2003 2005 2008

TOPOAMORE Profilo | Expert

sostituisci

CurrentRowIndex con CurrentRow.Index

jtpsala Profilo | Senior Member

Uso vb 2008.
ho provato nel frattempo con questo:

Me.MarcaTextBox.Text = Me.CaricoDataGridView.Rows(e.RowIndex).Cells(1).Value()
funziona!
Secondo te potrebbe dare problemi?

TOPOAMORE Profilo | Expert

NO NON PENSO TI DARA PROBLEMI COMUNQUE SIA HAI TROVATO LA SOLUZIONE

dIMMI SE TI SERVE ANCORA UNA MANO

cAIOOO

jtpsala Profilo | Senior Member

Ringrazio ancora una volta.
Solo a titolo di informazione vorrei porre una domanda che farò in un altro post.
Grazie.
Ciao.

TOPOAMORE Profilo | Expert

Dimmi tutto

jtpsala Profilo | Senior Member

Mi sa che il codice che ho utilizzato io non funziona. E' vero che carica i dati che ho selezionato io dal DataGridView, però in fase di salvataggio li abbina alla prima riga nella tabella del database.
Forse bisogna utilizzare quelche altro metodo?

TOPOAMORE Profilo | Expert

ma ti da ancora problemi?

jtpsala Profilo | Senior Member

Si l'ho scoperto adesso dopo una installazione di prova.
In pratica qualsiasi riga vado a selezionare, dopo aver aggiunto il contenuto nei vari textbox, mi aggiorna sempre la prima riga presente nel database. In pratica, hai presente quando inserisci in un form l'origine dati che puoi farlo o in visualizzazione datagrig oppure in testbox che scorrendo il contenuto della datagrid in automatico aggiorna i textbox. Nel mio caso non lo fa. Blocca lo scorrimento dei dati nelle textbox. Esempio se con il metodo creato automaticamente dall'autocomposizione nella riga 1 della datagrid è presente la riga con ID n° 1 del database, nel mio caso dopo aver filtrato il contenuto nella datagrid e vado a selezionare la riga di mio interesse che voglio aggiornare, l'aggiornamento avviene sempre nella prima riga effettiva del database.

TOPOAMORE Profilo | Expert

purtroppo io uso vb 2003 e la sintassi e un po diversa ma da come vedo l'unico errore puo essere:

Me.MarcaTextBox.Text = Me.CaricoDataGridView.Rows(e.RowIndex).Cells(1).Value()

modifica quello che hai scritto con :

Me.MarcaTextBox.Text = Me.CaricoDataGridView.Rows(e.RowIndex).Column(numerocolonna)

se esiste questa proprieta controlla che dovrebbe funzionare

Ciaooo

jtpsala Profilo | Senior Member

Mi dice che Colunn non è un suo membro.

TOPOAMORE Profilo | Expert

neanche item?
oppure qualcosa che identifichi una colonna?
Cerca nei membri vedi se esiste "item" o columnname o qualcosa del genere

jtpsala Profilo | Senior Member

Ho provato in questo modo ed il risulato non è cambiato:
Me.MarcaTextBox.Text = Me.CaricoDataGridView.Rows(e.RowIndex).Cells.Item(1).Value
se invece aggiuniundo anche:
Me.MarcaTextBox.Text = Me.CaricoDataGridView.Rows(e.RowIndex).Cells.Item(0).Value
Ottengo questo errore:
La colonna 'ID' deve contenere valori univoci. Il valore '3' è già presente.

jtpsala Profilo | Senior Member

Pensandoci bene, credo che il problema sia nel momento in cui creo un filtro sul DataGridView. Probabilmente, filtrando proprio li i dati, si disallinea la connessione nel DataBinder.
Se invece provassimo a creare un filtro direttamente nel database , tenendo scollegato il DataBinding e al termine della ricerva far connettere il DataBinding in modo da visualizzarne il contenuto nella mia DataGridView. Secondo te è possibile fare una cosa del genere?
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