[asp.net]Dropdown vasthouden

Pagina: 1
Acties:

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Dag tweakers,

Ik ben nogal nieuw in asp.net en na uren zelf vanalles geprobeerd te hebben, gezocht op GoT en Google heb ik besloten toch maar een topic aan te maken (wat waarschijnlijk ook weer snel gesloten zal worden)

Het probleem is dat het met niet lukt op de geselecteerde waarde uit het dropdown menu vast te houden.

Met de volgende code maak ik het dropdown menu aan met gegevens uit een Acces Database.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
         'datareader aanmaken zodat we de records kunnen lezen
         DtrOndPri=dbcomm.ExecuteReader()

         'de waarden uit de database in het DropDownMenu zetten
         DrpOndPri.DataSource=DtrOndPri

         DrpOndPri.DataValueField="groepcode"
         DrpOndPri.DataTextField="onderwerp_ned"

         DrpOndPri.Databind()

         'handmatig het eerste item van het DropDownMenu ingeven
         DrpOndPri.Items.Insert(0,New ListItem("Maak een keuze..."))

         'alles afsluiten omdat we de database toch nietmeer gebruiken
         DtrOndPri.Close()
         dbconn.Close()


Dit leverd een mooie dropdown op met alle gewenste waarden
Deze dropdown ziet er als volgt uit;
code:
1
2
3
4
5
        <asp:DropDownList id="DrpOndPri" runat="server"
        OnSelectedIndexChanged="DrpOndPri_SelectedIndexChanged"
        AutoPostback="true"
        CssClass="DrpOndPri">
        </asp:DropDownList>


Hij word dus automatisch gesubmit en dan word er een "sub" uitgevoerd
Ik haal de geselecteerde waarde weer op met;
code:
1
2
3
4
5
6
7
8
9
    'globale variabelen declareren
    Dim OndPriSelected As String

         'kijken of de pagina terug gepost word
         If Page.IsPostBack Then
         'selected item opvragen
         OndPriSelected=DrpOndPri.SelectedItem.Value
         OndPriVal.Text=OndPriSelected
         End If


Ik krijg het echter niet voor elkaar om tijdens het opnieuw opbouwen van het dropdown menu de juiste waarde een "SELECTED" mee te geven ofzo.

Geprobeerde dingen;
code:
1
DrpOndPri.SelectedItem("groepcode" + OndPriSelected)


code:
1
2
3
If "groepcode" = OndPriSelected Then
    DrpOndPri.Select=True
End If


En alle verschillden opbouwen hiervan.

Het moet vast heel simpel zijn, maar ik krijg het nergens gevonden.

Wie kan me helpen dit probleem op te lossen.

Greetz

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

code:
1
DrpOndPri.SelectedValue = OndPriSelected

werkt niet? meer info: msdn
of, niet databinden bij een postback.

[ Voor 9% gewijzigd door Annie op 13-10-2005 12:40 ]

Today's subliminal thought is:


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

In je Page_Load Page.IsPostback afvangen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Zie ook mijn topic hier: [rml][ ASP.net/C#] - SelectedIndex DropDownlist in grid onthouden[/rml]

Ik doe het m.b.v. een functie getSelected(ddl_id); niet echt netjes, maar het werkt wel.

Maar idd, gewoon niet databinden als het een postback is.

[ Voor 13% gewijzigd door Verwijderd op 13-10-2005 12:52 ]


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 28-04 20:39
Volgens mij zorgt je viewstate daar automatisch voor ( als je niet bij elke postback een databind doet dus )

Anders lees nog ff de MSDN artikelen door die gaan over 'webform life cycle' en 'web form state management', wordt je een stuk wijzer van.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

farlane schreef op donderdag 13 oktober 2005 @ 13:59:
Volgens mij zorgt je viewstate daar automatisch voor ( als je niet bij elke postback een databind doet dus )

Anders lees nog ff de MSDN artikelen door die gaan over 'webform life cycle' en 'web form state management', wordt je een stuk wijzer van.
Dat moet je volgens mij ook enablen bij een ddl, wellicht heeft de TS dat niet gedaan.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

Afaik staat die standaard enabled?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Inderdaad, maar in het topic dat ik aanhaalde heb ik dat expliciet nog op true gezet. Niet dat dat bij mij iets veranderde, maar je weet maar nooit :).

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Ik heb het nu opgelost met;

code:
1
2
3
         If Not Page.IsPostBack Then
         DrpOndPri.Databind()
         End If


Maar ik snap niet wat ik precies gedaan heb nu.
Door Databind() weg te laten maak ik niet opnieuw de DropDown aan?
Maar ik haal nog wel steeds alle gegevens uit de database?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

Ja, behalve bij een postback

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • joopst
  • Registratie: Maart 2005
  • Laatst online: 01-10-2024
je moet alleen databind aanroepen de eerste keer, en niet meer bij elke postback
psuedo:
code:
1
2
3
if NOT Page.IsPostBack then
     myDropDown.Databind
end if

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
joopst schreef op donderdag 13 oktober 2005 @ 14:47:
je moet alleen databind aanroepen de eerste keer, en niet meer bij elke postback
psuedo:
code:
1
2
3
if NOT Page.IsPostBack then
     myDropDown.Databind
end if
Ja dat deed ik niet en ging het wel goed.
Maar als ik het goed begrijp haal ik de eerste keer dus alle gegevens uit de database en DataBind() ik deze gegevens.
Echter de 2e (en meerdere) keer haal ik nog wel de gegevens uit de database -deze code staat immers gewoon in de Page_load en buiten de If Not page.Postback- maar DataBind() ik ze nietmeer.

Is dit zoals het nu gaat? En haal ik dan de gegevens niet onnodig nog een keer uit de database?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 28-04 20:39
Als de data in de database verandert tussen postbacks door moet je opnieuw databind doen, echter moet je het selecteditemid onthouden, en opnieuw opzoeken.

Als dit niet nodig is moet je ook niet de db queryen, dat is onnodig, het viewstate verhaal zorgt er dan voor dat je data na een postback wordt onthouden.

Btw, lees aub die MSDN artikelen, uit je vragen kan ik opmaken dat je er weinig van snapt

[ Voor 13% gewijzigd door farlane op 13-10-2005 17:16 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
farlane schreef op donderdag 13 oktober 2005 @ 17:15:
Als de data in de database verandert tussen postbacks door moet je opnieuw databind doen, echter moet je het selecteditemid onthouden, en opnieuw opzoeken.

Als dit niet nodig is moet je ook niet de db queryen, dat is onnodig, het viewstate verhaal zorgt er dan voor dat je data na een postback wordt onthouden.

Btw, lees aub die MSDN artikelen, uit je vragen kan ik opmaken dat je er weinig van snapt
Haha, ik snap er idd weinig van en bovendien vind ik MSDN enorm onoverzichtelijk.
Maar hartelijk dank voor je uitleg en ik zal idd eens goed op MSDN gaan lezen.

Verwijderd

Ik gebruik MSDN ook nooit om te zoeken, gewoon via google. De artikelen zijn meestal wel duidelijk, de voorbeelden ook.
Pagina: 1