Toon posts:

[c# / ASP.net] Request.form gebruiken in dropDownList

Pagina: 1
Acties:

Verwijderd

Topicstarter
Tot op heden gebruikte ik altijd het ingebouwde onselectedindexchanged event van een dropDownList voor mijn web controls. Het bekende probleem in Asp.Net is dat je, wanneer je terugkeert naar het eerste item in de combobox, er geen event getriggerd wordt.

Daarom gebruik ik de autopostback property voor een combobox, en gebruik ik daarna de waarde die in Request.Form zit, om te weten welke value ik geselecteerd heb. Nu wil ik aan de hand van die waarde een tweede combobox aanpassen, zodat het geselecteerde item automatisch goed komt te staan.

Het probleem is dat ik blijkbaar niet op tijd aan de Request.Form waarden aan kan, want wanneer ik op dat moment de selectedIndex wil goed zetten, reageert de dropdownlist daar niet meer op.

Een voorbeeld vind je op :
http://www.alkohl.be/jasje/ddlInUserControlNotReacting.zip

Alvast bedankt voor de mogelijke antwoorden.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 21-05 16:50

gorgi_19

Kruimeltjes zijn weer op :9

1. Je controlcollection in orde brengen doe je normaliter in je Page_Init of CreateChildControls; niet in je Page_Load
2. Een dropdownlist fired een event (SelectedIndexChanged), welke je kan afvangen. Je hoeft dit dus niet in je Page_Load af te vangen.
3. Eenmaal gebinde items hoef je niet nogmaals te binden in je page_load; normaliter worden deze opgeslagen in de viewstate
4. Waarom werk je met Response.Write ? ASP.Net != ASP; er zijn zelden situaties dat je met REsponse.Write aan de gang moet in ASP.Net
5. En waarom wordt dat event niet getriggerd in ASP.Net? Ik heb bij mij iig nergens last van :)

[ Voor 11% gewijzigd door gorgi_19 op 06-10-2004 11:24 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:48

TeeDee

CQB 241

Je kan toch in principe op elk moment het SelectItem.Value opvragen :?

code:
1
2
3
4
<asp:dropdownlist id="ddlist" 
     runat="server" AutoPostBack="True"
     OnSelectedIndexChanged="Functie">
</asp:dropdownlist>

codebehind
C#:
1
2
3
4
public void Functie(object sender, System.EventArgs e)
{
     string selectedWaarde = ddlist.SelectedItem.Value;
}


Of mis ik de plank helemaal?

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
gorgi_19 schreef op 06 oktober 2004 @ 11:20:
1. Je controlcollection in orde brengen doe je normaliter in je Page_Init of CreateChildControls; niet in je Page_Load
2. Een dropdownlist fired een event (SelectedIndexChanged), welke je kan afvangen. Je hoeft dit dus niet in je Page_Load af te vangen.
3. Eenmaal gebinde items hoef je niet nogmaals te binden in je page_load; normaliter worden deze opgeslagen in de viewstate
4. Waarom werk je met Response.Write ? ASP.Net != ASP; er zijn zelden situaties dat je met REsponse.Write aan de gang moet in ASP.Net
5. En waarom wordt dat event niet getriggerd in ASP.Net? Ik heb bij mij iig nergens last van :)
2. Die selectedIndexChanged wordt niet getriggerd wanneer je terug klikt op het eerste item. Test maar even met een dropDownList met 2 items in, klik op de tweede, geen probleem, klik dan terug op de eerste, en er wordt geen event gefired.
4. Response.write gebruik ik gewoon om vlug effe een output te hebben. Zet maar eens wat brakepoints op de lijnen waar de selectedindex gezet wordt, en je ziet zo wat er misloopt.
1. & 3. Geen idee wat je hiermee bedoelt, en ik denk dat daar misschien de oplossing kan liggen. Kan je nog even verduidelijken?

edit: geef nu toe, dit is toch op zijn minst vreemd te noemen.

Dit werkt:
code:
1
2
            loginID = 5;
            cmbRoles.SelectedIndex = loginID;

En dit niet:
code:
1
2
3
4
5
6
            if(Request.Form["_ctl3:cmbLogins"] != null)
            {
                loginID = int.Parse(Request.Form["_ctl3:cmbLogins"]);
            }

            cmbRoles.SelectedIndex = loginID;


Ook al geeft een watch op loginID op dat moment perfect de waarde 5 terug (daarom dat ik om te testen ook nog een response.write van loginID gaf).

[ Voor 17% gewijzigd door Verwijderd op 06-10-2004 11:40 ]