Lege rij in datagridview verbergen

Status
Niet open voor verdere reacties.

Doofenshmirt

Gebruiker
Lid geworden
3 nov 2011
Berichten
222
Hoi,

Hoe kan ik zoeken naar lege rijen in een datagridview en deze tijdelijk verbergen ?

Het liefst natuurlijk na het vullen van de datagridview.

Deze vul ik met een code en de gegevens komen uit een access database
 
Kun je even een voorbeeld met een screenshot geven over welke rijen je het hebt?
 
Maar hoe wil jij dat het er (tijdelijk) uit komt te zien dan?
 
Voor het verbergen:

Boven de sub:
[CPP]Private Rows As New List(Of DataGridViewRow)[/CPP]

In de sub:
[CPP] For Each row As DataGridViewRow In DataGridView1.Rows
For Each cell As DataGridViewCell In row.Cells
If cell.ColumnIndex <> 0 Then
If cell.Value.ToString <> "" Then
Continue For
Else
If Not Rows.Contains(row) Then Rows.Add(row)
row.Visible = False
End If
End If
Next
Next[/CPP]

Voor het weer terughalen:

[CPP] For Each row As DataGridViewRow In Rows
row.Visible = True
Next[/CPP]

84424050.png


wordt dan

23372885.png
 
Laatst bewerkt:
Ik krijg een fout melding op deze regel

Code:
 If cell.Value <> "" Then

De conversie van tekenreeks  naar type Date is ongeldig.
 
En als je dit gebruikt:
Code:
If NOT cell.value = "" Then

Werkt het dan wel?
 
Vreemd dat het niet werkt, ik heb het zelf getest. :confused:

Probeer MartinJM's oplossing eens.
 
Als ik het in een ander datagridview probeer krijg ik deze melding

Code:
Operator <> is niet gedefinieerd voor type DBNull en tekenreeks .


@JoZ1 kan ik het voorbeeld dat je gemaakt heb misschien ergens downloaden.
Kan ik misschien kijken waar ik de mist in ga.
 
Toevallig had ik 'm opgeslagen. Link: *KNIP*
 
Laatst bewerkt:
Bedankt voor het voorbeeld , die werkt.

Maar als ik het voorbeeld vul met een database uit access ,krijg ik de zelfde foutmeldingen.

Dit is de code die ik even als gebruikt heb.

De datagridview wordt gevuld , maar als ik de rijen wil verbergen met de button dan krijg ik weer die foutmelding.:o
Code:
  provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
        dataFile = ("C:\HM Datagridview\HM Datagridview\bin\Debug\Stoffen.mdb")
        connString = provider & dataFile
        myConnection.ConnectionString = connString
        da = New OleDbDataAdapter("Select [Naam],[Adres] from Tabel2", myConnection)
        da.Fill(ds, "Tabel2")

        
        Dim view1 As New DataView(tables(0))
        source1.DataSource = view1
        DataGridView1.DataSource = view1
        DataGridView1.Refresh()
       


        myConnection.Close()
En deze fout melding komt weer
Code:
If cell.Value <> "" Then

De conversie van tekenreeks  naar type Date is ongeldig.
 
Kun je die database dan even sturen?

Of in ieder geval de inhoud geven van de cel, waarbij dit gebeurt (kun je kijken met breakpoints)
 
Ik heb even een andere access database gemaakt , deze is bijna gelijk aan degene die ik ga gebruiken.

Als ik deze in jouw voorbeeld zet krijg ik deze foutmelding na het op de button drukken Verwijder lege rijen.

Code:
If cell.Value <> "" Then

De conversie van tekenreeks  naar type Date is ongeldig.


Code voor vullen datagridview
Code:
 provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
        dataFile = ("C:\Downloads\HM Datagridview\HM Datagridview\bin\Debug\Stof.mdb")
        connString = provider & dataFile
        myConnection.ConnectionString = connString
        da = New OleDbDataAdapter("Select [Reis nummer], [Datum], [Laadplaats], [Naam] from Tabel1", myConnection)
        da.Fill(ds, "Tabel1")

        

        Dim view1 As New DataView(tables(0))
        source1.DataSource = view1
        DataGridView1.DataSource = view1
        DataGridView1.Refresh()
       


        myConnection.Close()

Hier staat de database met de naam Stof
Code:
http://dl.dropbox.com/u/10377368/Helpmij/Stof%20helpmij.ZIP
 
Ja, ik krijg ook dezelfde fout als jij. Vreemd geval.

Ik ga er nog even naar kijken.
 
Stom dat ik hier niet eerder ben opgekomen.

Gewoon zo natuurlijk ;).

[cpp]If cell.Value.ToString <> "" Then[/cpp]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan