datagridview aanpassen

Status
Niet open voor verdere reacties.

johndewitte

Gebruiker
Lid geworden
28 mei 2009
Berichten
12
Beste Forumleden,

enkele vraagjes:
is het mogelijk om een datagridview aan te passen zodat bij een klik op eenveld
een tekstveld verschijnt (popup) waarbij de gebruiker zijn data kan intikken?

bestaat de mogelijkheid om in de datagrid een veld te voorzien van
een combobox (zodat de gebruiker kan kiezen uit een lijst)?

Grt,

John
 
johndewitte zei:
is het mogelijk om een datagridview aan te passen zodat bij een klik op eenveld
een tekstveld verschijnt (popup) waarbij de gebruiker zijn data kan intikken?
Ja, dit kan in het Click-event van het Datagrid. Laat dan gewoon een InputBox zien die de waarde van de geselecteerde cel aanpast.

johndewitte zei:
bestaat de mogelijkheid om in de datagrid een veld te voorzien van
een combobox (zodat de gebruiker kan kiezen uit een lijst)?

Klik op de DataGridview, klik op Edit Columns en doe dit:

Et7y2.png


Dat ziet er zo uit:

Z58Rm.png
 
bijkomende vragen

Hey,
bedankt voor de respons.

Ik zit met 2 vragen:

1. Bij het uitwerken van de txtfield ("Naamvoornaam") krijg ik het resultaat dat de datagrid wordt bijgewerkt, maar
de combobox die zich niet in de datagrid bevind, blijft gevuld met de oude data (niet bijgewerkte velden van de kolom "Naamvoornaam").
Is er een mogelijkheid om die combobox met code te herupdaten (een soort van re-query)?

2. Updaten van de veranderde fields van de datagrid kan ik met een aparte knop (knop 'bijwerken'), maar kan dat ook in
de code zelf gebeuren? Mijn code heb ik hieronderaan gekleefd, maar die doete niets, de update doet het wel met dezelfde code in de knop bijwerken.


Code knop bijwerken:

Private Sub btnBijwerken_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBijwerken.Click

Dim Updatecmd As SqlCommand = Cn.CreateCommand

Updatecmd.CommandText = "Update Klant Set Klant.Naamvoornaam=@Naamvoornaam, Klant.Adres=@Adres, Klant.Huisnummer=@Huisnummer, Klant.Telefoonnummer=@Telefoonnummer, Klant.GSMnummer=@GSMnummer, Klant.Email=@Email, Klant.KlantMaat=@Klantmaat where Klantnummer=@Klantnummer"

Updatecmd.Parameters.AddWithValue("Klantnummer", ComboBox1.SelectedValue)

Updatecmd.Parameters.Add("Naamvoornaam", SqlDbType.NVarChar, 40, "Naamvoornaam")
Updatecmd.Parameters.Add("Adres", SqlDbType.NVarChar, 40, "Adres")
Updatecmd.Parameters.Add("Huisnummer", SqlDbType.NVarChar, 15, "Huisnummer")
Updatecmd.Parameters.Add("Telefoonnummer", SqlDbType.NVarChar, 15, "Telefoonnummer")
Updatecmd.Parameters.Add("GSMnummer", SqlDbType.NVarChar, 15, "GSMnummer")
Updatecmd.Parameters.Add("Email", SqlDbType.NVarChar, 50, "Email")
Updatecmd.Parameters.Add("Klantmaat", SqlDbType.NVarChar, 75, "Klantmaat")





DaKlant.UpdateCommand = Updatecmd

Dim Aantal As Integer = DaKlant.Update(TaKlant)

End Sub


code datagrid cellcontentclick
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
Dim strInt As String

strInt = InputBox("Vul de waarde met deze tekst", CStr(DataGridView1(e.ColumnIndex, e.RowIndex).Value))
If strInt = " " Then
MessageBox.Show("Je moet iets invullen, anders blijft het veld zoals het is.")
Exit Sub
ElseIf strInt = "" Then
Exit Sub
Else
DataGridView1(e.ColumnIndex, e.RowIndex).Value = strInt.ToString
Dim Updatecmd As SqlCommand = Cn.CreateCommand

Updatecmd.CommandText = "Update Klant Set Klant.Naamvoornaam=@Naamvoornaam, Klant.Adres=@Adres, Klant.Huisnummer=@Huisnummer, Klant.Telefoonnummer=@Telefoonnummer, Klant.GSMnummer=@GSMnummer, Klant.Email=@Email, Klant.KlantMaat=@Klantmaat where Klantnummer=@Klantnummer"

Updatecmd.Parameters.AddWithValue("Klantnummer", ComboBox1.SelectedValue)

Updatecmd.Parameters.Add("Naamvoornaam", SqlDbType.NVarChar, 40, "Naamvoornaam")
Updatecmd.Parameters.Add("Adres", SqlDbType.NVarChar, 40, "Adres")
Updatecmd.Parameters.Add("Huisnummer", SqlDbType.NVarChar, 15, "Huisnummer")
Updatecmd.Parameters.Add("Telefoonnummer", SqlDbType.NVarChar, 15, "Telefoonnummer")
Updatecmd.Parameters.Add("GSMnummer", SqlDbType.NVarChar, 15, "GSMnummer")
Updatecmd.Parameters.Add("Email", SqlDbType.NVarChar, 50, "Email")
Updatecmd.Parameters.Add("Klantmaat", SqlDbType.NVarChar, 75, "Klantmaat")





DaKlant.UpdateCommand = Updatecmd

Dim Aantal As Integer = DaKlant.Update(TaKlant)
MessageBox.Show(Aantal & " record(s) bijgewerkt ", My.Application.Info.Title)

End If


Grt,

John
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan