Multidesk.be » Forums » ASP » Meerdere filterwaarden (gesloten)

Helpinformatie
Dit onderwerp werd gesloten.
Het is bijgevolg niet mogelijk er nog op te reageren.
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door Ezio op woensdag 23 april 2014 om 21:58:06.
Ezio's avatar
Multiviteit: 973
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Hey,

Op mijn website heb ik op de pagina 'shop' twee filters: naam en console. Elke filter haalt zijn waarden uit de databank, maar heeft ook de waarde 'Alle'. Deze waarde heb ik op deze manier toegevoegd:

CODE
  1. Protected Sub cmbFilterConsole_DataBound(sender As Object, e As EventArgs) Handles cmbFilterConsole.DataBound
  2.         Dim item As ListItem
  3.         item = cmbFilterConsole.Items(0)
  4.         cmbFilterConsole.Items.Insert(0, New ListItem("Alle", "%"))
  5.         cmbFilterConsole.Items.Add(item)
  6.  
  7.         cmbFilterConsole.SelectedIndex = 0
  8.        
  9.     End Sub


Wanneer er op de knop 'Filter' gedrukt wordt moeten de producten gefilterd worden. Dit probeer ik te realiseren via volgende manier:
CODE
  1.  
  2.          Protected Sub btnFilter_Click(sender As Object, e As EventArgs) Handles btnFilter.Click
  3.         'sqldtsProducten filteren
  4.  
  5.         strFilterNaam = cmbFilterNaam.SelectedValue.ToString
  6.         strFilterConsole = cmbFilterConsole.SelectedValue.ToString
  7.  
  8.         Dim strFilter As String
  9.         strFilter = "ID='" & strFilterNaam & "' AND Console='" & strFilterConsole & "'"
  10.         sqldtsProducten.FilterExpression = strFilter
  11.  
  12.     End Sub
  13.  
  14.      
  15.     End Sub


Wanneer de gebruiker dus 'Alle' selecteert in een filter wordt er een SQL wildcard gebruikt, maar helaas slaag ik er niet in om de producten te filteren.
Een voorbeeldje: Ik selecteer 'WATCH_DOGS' in combinatie met 'Alle' . We krijgen we deze uitvoer:

http://i.snag.gy/7Had5.jpg


Dit ziet er goed uit volgens mij, maar helaas krijg ik telkens de error "De bewerking = kan niet worden uitgevoerd op System.Int32 en System.String".

Iemand die raad weet met dit euvel? :)
I'm a gamer because I don't have a life... I've chosen to have many
^ Reactie #1 geschreven door thekid op donderdag 24 april 2014 om 18:06:05.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Als tip, is je Id veld nu een int of een string? :)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #2 geschreven door Ezio op donderdag 24 april 2014 om 19:56:38.
Ezio's avatar
Multiviteit: 973
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Aha, het ID van de console is een integer. Heb strFilterConsole nu aangepast naar intFilterConsole en nu doe ik ook intFilterConsole = cmbFilterConsole.SelectedVALUE om het ID van de console te achterhalen :)

En de domste fout was inderdaad die die jij opmerkte, ik filter op ID maar strFilterNaam bevat niet het ID van het product maar de naam :)

Wanneer ik nu WATCH_DOGS kies in combinatie met PlayStation 3 wordt het juiste product getoond, super!
Maar wanneer ik 'Alle' selecteer bij de console krijg ik deze error: "De conversie van tekenreeks % naar type Integer is ongeldig". Begrijpelijk, maar hoe lossen we het op? :) Veldtype aanpassen naar nvarchar is een mogelijkheid, maar lijkt me geen goede.

CODE
  1. cmbFilterConsole.Items.Insert(0, New ListItem("Alle", Convert.ToInt32("%")))
lijkt niet te werken.
Deze tekst werd het laatst bewerkt voor 7.44 % door Ezio op donderdag 24 april 2014 om 20:01:49.
I'm a gamer because I don't have a life... I've chosen to have many
^ Reactie #3 geschreven door thekid op donderdag 24 april 2014 om 20:26:53.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
je kan op dat moment er natuurlijk voor kiezen om ID niet mee te geven in de query string ;)

dus kijken, indien geen strFilterCode, of die is gelijk aan '%' dit deel van de query niet toevoegen ;)

"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #4 geschreven door Ezio op donderdag 24 april 2014 om 21:18:20.
Ezio's avatar
Multiviteit: 973
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Heb het opgelost met een IF :) Superblij dat het eindelijk werkt, thx!! :D
I'm a gamer because I don't have a life... I've chosen to have many
^ Reactie #5 geschreven door thekid op donderdag 24 april 2014 om 21:42:41.
thekid's avatar
Multiviteit: 5273
Moderator
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
deze keer heb je het zelf opgelost ;)

Opmerking van de crew

slotje zoals gevraagd
thekid
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten