Click here to Skip to main content
13,503,224 members

GridView's Dropdowns fire SelectedIndexChanged event at same time when select any one from them

Wasim1989 asked:

Open original thread
I am adding dropdownlist to gridview by program. when i select drowdown item first time it working fine(Event fire only once) but in next time i select another dropdownlist item then my event(GVDropDownSelectIndexChanged) fire twice (n times according to previous selected dropdown). below is my code. can any body give me solution to this problem.
thanx in advanced.
My Code
public void PopulateGridViewDetails()
int row1 = 0;
            foreach (GridViewRow rows in GridView1.Rows)
                for (int cCount = 0; cCount < dataTable.Columns.Count; cCount++)
                    if (cCount < 3)
                        Label l = new Label();
                        l.ID = "gvlbl" + dataTable.Columns[cCount].ColumnName;
                        l.Text = dataTable.Rows[row1][cCount].ToString();

                        if (l.ID == "gvlblTarineeId")
                            l.Visible = true;

                        if (cCount == 0)
                            GridView1.HeaderRow.Cells[cCount].Visible = false;
                            rows.Cells[cCount].Visible = false;

                        if (dataTable.Columns[cCount].ColumnName.ToLower().Contains("status"))
                            //adding dropdownlist to grid view 
                            DropDownList ddlStatus = new DropDownList();
                            ddlStatus.ID = "ddl" + dataTable.Columns[cCount].ColumnName + "_" + row1;
                            ddlStatus.DataSource = new StudentExamStatusDAO().GetExamStatusList();
                            ddlStatus.DataTextField = "Status";
                            ddlStatus.DataValueField = "Id";

                            ddlStatus.Items.Add(new ListItem("--Select Status--", "0"));
                            ddlStatus.SelectedValue = "0";
                            //adding Event to DropdownList
                            ddlStatus.SelectedIndexChanged += new EventHandler(GVDropDownSelectIndexChanged); 
                            ddlStatus.AutoPostBack = true;
                            GridView1.HeaderRow.Cells[cCount].Text = "";
                            TextBox t = new TextBox();
                            t.ID = "gvtxt" + dataTable.Columns[cCount].ColumnName;

                            Label lID = new Label();
                            lID.ID = "gvlbl" + dataTable.Columns[cCount].ColumnName + "Id";
                            lID.Text = dataTable.Rows[row1][cCount].ToString();
                            lID.Visible = false;


My Event which is fired n times (according to previous dropdownlist selection)
protected void GVDropDownSelectIndexChanged(object sender, EventArgs e)

Is there any sequencing problem.
i Load gridview Data from pageLoad event without checking IsPostback property

protected void Page_Load(object sender, EventArgs e)
            if (!IsPostBack)
                //my stuff

        catch (Exception)

and is there any other way to achieve this stuff (prevent other controls event)?
Tags: C#, ASP.NET


When answering a question please:
  1. Read the question carefully.
  2. Understand that English isn't everyone's first language so be lenient of bad spelling and grammar.
  3. If a question is poorly phrased then either ask for clarification, ignore it, or edit the question and fix the problem. Insults are not welcome.
  4. Don't tell someone to read the manual. Chances are they have and don't get it. Provide an answer or move on to the next question.
Let's work to help developers, not make them feel stupid.
Please note that all posts will be submitted under the The Code Project Open License (CPOL).

Advertise | Privacy |
Web01 | 2.8.180417.1 | Last Updated 26 Mar 2009
Copyright © CodeProject, 1999-2018
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100