Jhnddy
Jhnddy

Reputation: 15

asp.net dropdownlist does not remember choice

I'm currently running into a head-scratching bug in my ASP.NET Windows Form App. I have two DropDownList, implemented them in the same way, yet they behave differently.

The problem:

It's doing this behavior consistently, yet I am unable to discover what I do wrong.

My Code:

In my HTML code, I have two DropDownList Controls.

<div>
    <asp:DropDownList runat="server" ID="GroepSelect" AutoPostBack="true" AppendDataBoundItems="true" />
    <asp:DropDownList runat="server" ID="VakSelect" AutoPostBack="true" AppendDataBoundItems="true" />
</div>

I'm populating the controls in my C# code:

protected void Page_Load(object sender, EventArgs e) {
        Database db = new Database();
        if (!IsPostBack) {
            GroepSelect.DataSource = GenereerDummyGroepen(); // returns a List<ListItem>
            GroepSelect.DataTextField = "Text";
            GroepSelect.DataValueField = "Value";
            GroepSelect.DataBind();
            GroepSelect.SelectedValue = "1";

            VakSelect.DataSource = db.GetVakken(); // returns a List<Vak>
            VakSelect.DataTextField = "Omschrijving";
            VakSelect.DataValueField = "Id";
            VakSelect.DataBind();
            VakSelect.SelectedValue = "1";
        }

        // Use the SelectedValue to determine which data to get out of the database
        Medewerkers = db.GetMedewerkers(int.Parse(GroepSelect.SelectedValue));
        Opdracht = db.GetOpdrachten(int.Parse(VakSelect.SelectedValue)).First();
        Resultaten = db.GetResultaten(Opdracht.Id, int.Parse(GroepSelect.SelectedValue));

        GenereerTabel();
    }

As requested, my code for GenereerDummyGroepen() is the following:

private List<ListItem> GenereerDummyGroepen() {
        return new List<ListItem>()
            {
                new ListItem("Groep 1", "1"),
                new ListItem("Groep 2", "1")
            };
    }

Why I implemented it this way?

I try to populate a custom-made pivot table based on the content of Medewerkers, Opdracht and Resultaten. The content of those lists, depends on the selected item in the DropDownList control. The expected behavior of those controls is, that on the moment those are changed, the table should re-populate. The strategy I follow here, is that a page-postback is being processed, and using the AppendDataBoundItems=true remembers the DropDownList contents so that on the newly refreshed page I can generate the table.

My Question

I'm looking for the answer for: why is there a consistent different behavior? Is it the fact that the ListItem class differs in behavior from my custom class Vak?

Upvotes: 0

Views: 136

Answers (1)

Kevin Shah
Kevin Shah

Reputation: 1617

Here I guess issue is with you function

GenereerDummyGroepen();

Please put your code here. In your code there is value field might have same data for all listItem. Because of that it is changing default to firstIndex as all values are same.

Upvotes: 1

Related Questions