Toon posts:

[ASP] Dropdown list met geselecteerde waarde

Pagina: 1
Acties:

Verwijderd

Topicstarter
Mijn pagina aanpassen bevat een form met onder andere een dropdown list met daarin typen gebruikers. Admins hebben rechten om ieders profiel aan te passen, nu wil ik graag dat de lijst de waarde geselecteerd heeft van het type gebruiker dat wordt ge-edit

ASP.NET 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
        <select name="Type">
          <option value="<%= (myprof.Fields.Item("Type").Value) %>">
          <%= (myprof.Fields.Item("Type").Value) %></option>
            <%
            If (myprof.Fields.Item("Type").Value = "Vrijwilligers") 
            AND (getType.Fields.Item("Type") = "Vrijwilligers") 
            Then
              getType.MoveFirst()
            End If

            While (NOT getType.EOF)
                If getType.Fields.Item("Type").Value = myprof.Fields.Item("Type").Value 
                Then
                  getType.MoveNext()
                End If
            %>
          <option value="<%=(getType.Fields.Item("Type").Value)%>" >
<%=(getType.Fields.Item("Type").Value)%></option>
            <%
            getType.MoveNext()
            Wend
            %>     
        </select>


ik heb twee query's: myprof bepaalt het aan te passen profiel en getType bevat een DISTINCT instructie die alle verschillende typen ophaalt uit de DB.

Dit stukkie code werkt perfect, behalve bij het type "vrijwilliger", waar er dus een EOF op treedt. Dit dacht ik op te lossen door

ASP:
1
2
3
4
5
            If (myprof.Fields.Item("Type").Value = "Vrijwilligers") 
            AND (getType.Fields.Item("Type") = "Vrijwilligers") 
            Then
              getType.MoveFirst()
            End If


te plaatsen voor de while statement: zodra hij voor de loop al aan het einde komt, verplaats hem dan naar het begin...

Maar ik blijf hetzelfde probleem krijgen: alle waarden staan in de dropdown list, maar helemaal onderaan staat een error msg dat hij bij BOF of EOF is....rara hoe krijg ik dit weg??

Verwijderd

2 .MoveNext's in 1 lus is vragen om problemen. Kijk eens of je het zo kan oplossen dat je maar op 1 plaats een .MoveNext uitvoert ...

  • Dope-E
  • Registratie: Januari 2001
  • Laatst online: 11-07 12:42

Dope-E

The one and only Dope

misschien omdat t voor kan komen dat er 2 x een movenext() plaats kan vinden voordat ie weer de while-conditie checkt.

Doe dit bijvoorbeeld:
ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
While (NOT getType.EOF)
                If getType.Fields.Item("Type").Value = myprof.Fields.Item("Type").Value 
                Then
                  getType.MoveNext()
                End If
              %>
          <option value="<%=(getType.Fields.Item("Type").Value)%>" >
<%=(getType.Fields.Item("Type").Value)%></option>
            <%
            If (NOT getType.EOF) Then
             getType.MoveNext()
            End If
            Wend

[ Voor 17% gewijzigd door Dope-E op 22-06-2003 01:54 ]

twitter.com/curly_sanders


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

En waarom heb je er ook nog een moveFirst in zitten? :?

Die code van Dope-E vind ik btw ook nog vrij ranzig; Je kan het beter oplossen met een if-statement. Zo sloop je iig die 2e movenext er uit en blijft het nog een beetje onderhoudbaar.

ASP:
1
2
3
4
5
6
7
8
9
10
Do While niet objPagingRS.EOF
  
    If objPagingRS("melp") = "waar" Then

        ' Voor een stukje code uit.

    End if

    objPagingRS.MoveNext
Loop


Andere vraag: Misschien ook wel zo netjes om met hele kleine stukjes code niet de hele tijd te gaan switchen tussen ASP en HTML?

[ Voor 120% gewijzigd door gorgi_19 op 22-06-2003 10:07 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Andere vraag: Misschien ook wel zo netjes om met hele kleine stukjes code niet de hele tijd te gaan switchen tussen ASP en HTML?
Inderdaad. Op deze manier is je code ten eerste een ramp om te onderhouden en ten tweede komt dit ook de performance niet echt ten goede aangezien op deze manier steeds tussen engines (HTML/VBScript) geswitched moet worden ;)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Dope-E
  • Registratie: Januari 2001
  • Laatst online: 11-07 12:42

Dope-E

The one and only Dope

DeverauX schreef op 22 June 2003 @ 10:20:
[...]

Inderdaad. Op deze manier is je code ten eerste een ramp om te onderhouden en ten tweede komt dit ook de performance niet echt ten goede aangezien op deze manier steeds tussen engines (HTML/VBScript) geswitched moet worden ;)
Das natuurlijk grote onzin! De parser voert alle VBScript uit en negeert de HTML... Er wordt niks geswitched! Pas op de client komt de HTML uitvoer aan bod.

twitter.com/curly_sanders


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Das natuurlijk grote onzin! De parser voert alle VBScript uit en negeert de HTML... Er wordt niks geswitched! Pas op de client komt de HTML uitvoer aan bod.
Ik dacht het niet he. Qua performance is het altijd beter je html middels een response.write te genereren dan door blokken code af te wisselen met blokken html.

In de vorige versie's van ASP 3.0 heeft dit vaak tot serieuze performance-problemen geleid. Ondanks dat dit in 3.0 sterk verbeterd is is het met het oog op performance altijd beter response.write te gebruiken voor je html-uitvoer :)

Bekijk een willekeurig artikel over het optimaliseren van je asp-applicatie en in veel van de gevallen zal je dit verhaal ook tegenkomen ;)

Technisch gezien heb je alleen wel gelijk dat er niet geswitched word.
Wat er echter wel gebeurt is dat de ASP-engine alle html blocks vertaald naar "ASP-code-blocks" en deze vervolgens weergeeft dmv Response.WriteBlock ().
En hoe meer blocken html er in je pagina staan des te meer WriteBlock's de engine moet uitvoeren. :)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Topicstarter
kheb het nu zo opgelost:

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        <select name="Type">
          <option value="<%= (myprof.Fields.Item("Type").Value) %>"><%= (myprof.Fields.Item("Type").Value) %></option>
            <%
            If getType.EOF Then
            getType.MoveFirst()
            End If

            While (NOT getType.EOF)
                If (NOT getType.Fields.Item("Type").Value = myprof.Fields.Item("Type").Value) Then
                %>
                <option value="<%=(getType.Fields.Item("Type").Value)%>" ><%=(getType.Fields.Item("Type").Value)%></option>
                <%
                End If

            If (NOT getType.EOF) Then 
            getType.MoveNext()
            End If
            Wend
            %>     
        </select>


bedankt voor de replies :) en jahh volgende keer werk ik wel met response.write maar dit is een opdracht die snel af moet zijn en ik had hem in dreamweaver 'geschreven' dus ben nu drukker bezig om alles alsnog te laten werken (lang boring verhaal)
Pagina: 1