[vb.net] DataGridView HeaderText aanpassen

Pagina: 1
Acties:

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Hallo,

Volgens deze pagina 'set' ik de HeaderText van een DataGridView kolom zo goed. Alleen laat hij gewoon de veldnamen zien.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Public Overloads Sub loadData(ByVal searchBedrijfsnaam As String)
        dsCrediteuren = CrediteurenData.CrediteurenData.DataModule.getCrediteuren(searchBedrijfsnaam)
        Me.dgvCrediteuren.DataSource = dsCrediteuren
        Me.dgvCrediteuren.DataMember = "crediteuren"
        Me.dgvCrediteuren.ReadOnly = True

        Me.dgvCrediteuren.Columns("crediteur_id").HeaderText = "Crediteurnummer"
        Me.dgvCrediteuren.Columns("crediteur_bedrijfsnaam").HeaderText = "Bedrijfsnaam"
        Me.dgvCrediteuren.Columns("crediteur_contactpersoon").HeaderText = "Contactpersoon"

        Me.dgvCrediteuren.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        Me.dgvCrediteuren.AllowUserToAddRows = False
        Me.dgvCrediteuren.AllowUserToDeleteRows = False
        Me.dgvCrediteuren.MultiSelect = False
        Me.dgvCrediteuren.AllowUserToResizeRows = False
        Me.dgvCrediteuren.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize
    End Sub


Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    Public Overloads Function getCrediteuren(ByVal searchBedrijfsnaam As String) As DataSet
        Dim conn As OleDb.OleDbConnection = getConnection()
        Try
            Dim ds As New DataSet
            Dim sql As String = "SELECT * FROM crediteuren WHERE crediteur_bedrijfsnaam LIKE '%" & searchBedrijfsnaam & "%'"
            Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sql, conn)

            Try
                da.Fill(ds, "crediteuren")
            Finally
                da.Dispose()
            End Try

            Return ds
        Finally
            conn.Close()
            conn.Dispose()
        End Try
    End Function


Hoe kan het dat de HeaderText niet veranderd wordt?

Ik denk dat ik te karig ben met info maar mochten jullie iets missen dan zal ik dat online zetten.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Worden de kolommen automatisch aangemaakt of heb je de kolommen zelf aangemaakt? Anders zou je namelijk eens moeten kijken naar de namen van de kolommen. Die zijn namelijk volgens mij niet (altijd) gelijk aan de velden waaraan de kolommen gekoppeld zijn.

My personal website


  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Ze worden automatisch aangemaakt. Ik heb de kolomnaam ook al vervangen door de ColumnIndex en ook dat werkt niet.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Is het dan niet makkelijk om je query zo op te bouwen dat daarin de juiste naamgeving voor de velden gebruikt wordt?
SQL:
1
Select crediteur_id as Crediteurnummer from crediteuren
Lijkt me in ieder geval ook wel netter dan daar aparte code voor te schrijven.

Verder vraag ik me af of je automatisch gegenereerde kolommen zomaar een andere naam mag en kunt geven. Volgens mij gaat dat namelijk alleen werken als je keihard de kolommen zelf aanmaakt in de DataGrid(View). Heb je dat al eens geprobeerd?

My personal website


  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Zo goed ben ik nog niet met DataGrid(View)

Hoe maak ik ze van te voren aan?

  • Millennium
  • Registratie: Augustus 2000
  • Laatst online: 30-04 07:59

Millennium

Bug free !!!

Zo goed ben ik nog niet met DataGrid(View)

Hoe maak ik ze van te voren aan?
AutoGenerateColumns false
en dan onder Collection ... een zooitje databound columns toevoegen.

Wat jij wil, kan je het beste uitvoeren op het DataGrid_OnDataItemBind event uitvoeren.

(Die manier zoals je het boven probeert, gaat iig niet werken zonder Databind aanteroepen ,al weet ik niet zeker of dit werkt met AutoGeneratedColumns.)

Rampen bak 2004


  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Bedankt allemaal, opgelost:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    Public Overloads Sub loadData(ByVal searchBedrijfsnaam As String)
        ' Make sure that there is no databound
        Me.dgvCrediteuren.DataSource = Nothing
        Me.dgvCrediteuren.DataMember = Nothing

        Me.dgvCrediteuren.ColumnCount = 7

        Me.dgvCrediteuren.Columns(0).DataPropertyName = "crediteur_bedrijfsnaam"
        Me.dgvCrediteuren.Columns(0).Name = "Bedrijfsnaam"
        Me.dgvCrediteuren.Columns(1).DataPropertyName = "crediteur_adres"
        Me.dgvCrediteuren.Columns(1).Name = "Adres"
        Me.dgvCrediteuren.Columns(2).DataPropertyName = "crediteur_postcode"
        Me.dgvCrediteuren.Columns(2).Name = "Postcode"
        Me.dgvCrediteuren.Columns(3).DataPropertyName = "crediteur_woonplaats"
        Me.dgvCrediteuren.Columns(3).Name = "Woonplaats"
        Me.dgvCrediteuren.Columns(4).DataPropertyName = "crediteur_contactpersoon"
        Me.dgvCrediteuren.Columns(4).Name = "Contactpersoon"
        Me.dgvCrediteuren.Columns(5).DataPropertyName = "crediteur_voorletters"
        Me.dgvCrediteuren.Columns(5).Name = "Voorletters"
        Me.dgvCrediteuren.Columns(6).DataPropertyName = "crediteur_titel"
        Me.dgvCrediteuren.Columns(6).Name = "Titel"

        Me.dgvCrediteuren.ReadOnly = True
        Me.dgvCrediteuren.AutoGenerateColumns = False
        Me.dgvCrediteuren.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        Me.dgvCrediteuren.AllowUserToAddRows = False
        Me.dgvCrediteuren.AllowUserToDeleteRows = False
        Me.dgvCrediteuren.MultiSelect = False
        Me.dgvCrediteuren.AllowUserToResizeRows = False
        Me.dgvCrediteuren.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize

        ' Set the databindings last
        dsCrediteuren = CrediteurenData.CrediteurenData.DataModule.getCrediteuren(searchBedrijfsnaam)
        Me.dgvCrediteuren.DataSource = dsCrediteuren
        Me.dgvCrediteuren.DataMember = "crediteuren"
    End Sub


Let op dat je de DataSource pas op het einde 'set' want je kunt de columncount van een datagridview met een datasource niet aanpassen. Daarom ook de datasource = nothing in het begin.

Is dit trouwens een beetje christelijke oplossing of kan het netter?
Pagina: 1