Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[vb.net] datagridview verschillende keren filteren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo

Ik heb een datagridview en wil de gebruiker de mogelijkheid geven om deze verschillende keren te filteren.
Ik weet echter nog welke criteria de gebruiker zal kiezen om de datagrid te filteren dus ik kan dit niet in 1 statement zetten.
Bestaat de mogelijkheid om wanneer een datagrid gefilterd wordt deze filtering 'vast te zetten' zodat wanneer de gebruiker op een ander criterium filtert er enkel wordt gefilterd op de gegevens die aan het criterium van de 1e filtering voldeden?

Dit is mijn code om te filteren:
Visual Basic .NET: MySupport
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
 
Public Sub Search()

        'een zoekfunctie aanmaken
        'DECLARATIE
        'een dataview aanmaken om in het hele formulier te gebruiken
        Dim dv As New DataView
        Dim ingegevenzoek As String

        'INVOER
        ingegevenzoek = ToolStripTextboxsearch.Text.ToString
        dv = New DataView(MyProgramDataSet.Tables(0), "Discription like  '*" & ingegevenzoek & "*'", "ProblemID", DataViewRowState.CurrentRows)


        'UITVOER
        DataGridView1.DataSource = dv

    End Sub


Alvast bedankt!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je kunt toch gewoon elke keer een stukje aan die filter toevoegen?

code:
1
2
3
4
5
6
7
8
9
10
11
12
filter = "description like '*foo*'";
//set dataview filter / refresh datagridview (when required)

//gebruiker doet iets

filter &= " and color = 'blue'"
//set dataview filter / refresh datagridview (when required)

//gebruiker doet iets

filter &= " and size = 'xxl'"
//set dataview filter / refresh datagridview (when required)


Verder: misschien dat je een volgende keer wil doorgaan in één van je vorige topics; je gaat namelijk elke keer door op eenzelfde onderwerp/project/vraag en om nou voor elk akkefietje (dat overigens ook prima uit de documentatie te halen moet zijn) een nieuw topic te openen...

[ Voor 56% gewijzigd door RobIII op 07-05-2014 15:37 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
oke, zal ik zeker doen!

En ik heb getest om code aan de filter toe te voegen maar wanneer er geen items bestaan die aan de tweede filtering (op ge lijst met gegevens na de 1e filtering) voldoet krijg ik een foutmelding ipv een lege datagrid weer te geven. Wanneer ik echter de 1e keer filter en geen enkel gegeven voldoet aan de criteria dan krijg ik wel een lege datagrid

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Debuggen, of anders gewoon je huidige filter instructie geven.

Ergens doe jij iets fout, wat RobIII schetst moet gewoon werken.

Verwijderd

Topicstarter
Dit is de code die ik nu gebruik:
Visual Basic .NET:
151
152
153
 Dim abc As String
        abc = ToolStripTextBox1.Text.ToString
        TblOverviewBindingSource.Filter &= ("Problem like '*" & abc & "*'").ToString

opzich zitten er hier toch geen fouten in?

[ Voor 22% gewijzigd door Verwijderd op 07-05-2014 19:37 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op woensdag 07 mei 2014 @ 19:35:
opzich zitten er hier toch geen fouten in?
Wat denk je zelf als 'ie het niet doet? ;)
Heb je al eens gedebugged? Debuggen: Hoe doe ik dat? Al eens bedacht wat die code die je post precies doet? Goed naar mijn voorbeeld gekeken?

Stop de query voor de gein eerst eens in een string, assign die aan je dataview en druk 'm af. Dan zie je vanzelf wat er mis gaat ;)

code:
1
2
3
4
5
6
7
8
9
10
mystring = "description like '*foo*'";
print mystring;

mydatavier.filter = mystring;

//gebruiker doet iets...
mystring &= " and Problem like '*foo*'";
print mystring;

mydatavier.filter = mystring;

Mijn (pseudo) voorbeeld gaat wél goed; nu jij:
code:
1
2
3
4
5
6
7
8
9
10
mystring = "description like '*foo*'";
print mystring;

mydatavier.filter = mystring;

//gebruiker doet iets...
mystring &= "Problem like '*foo*'";
print mystring;

mydatavier.filter = mystring;

Zoek de verschillen ;)

[ Voor 43% gewijzigd door RobIII op 07-05-2014 20:23 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
hahaha hij werkt!
dankuuuuu! :p
en sorry voor de 'domme' vragen, ik ben blond van nature ;)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dat is geen excuus om niet even verder dan je neus te kijken en ons 't werk op te laten knappen als je er even niet uit komt ;) Debuggen, debuggen, debuggen!

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1