Click here to Skip to main content
13,505,586 members
Rate this:
Please Sign up or sign in to vote.
See more:
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)?
Posted 30-Jan-13 2:59am
Updated 31-Jan-13 2:45am
Gerenatian 30-Jan-13 9:32am
Are you looking at the sender values to see exactly what object is triggering the event?

DropDownList snd = (DropDownList)sender;
string Name = snd.Name;

This might help provide more insight to whats firing the event.
Wasim1989 30-Jan-13 9:36am
yes i m checking. and getting another dropdownlist

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

Every time the data is populated it registers the event. For safe end

Add unregister Event Handler.

//removing Event to DropdownList
ddlStatus.SelectedIndexChanged -= new EventHandler(GVDropDownSelectIndexChanged);
//adding Event to DropdownList
ddlStatus.SelectedIndexChanged += new EventHandler(GVDropDownSelectIndexChanged);
Wasim1989 1-Feb-13 1:33am
Wasim1989 1-Feb-13 2:12am
I tried your code but it doesnt work.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy |
Web04 | 2.8.180417.1 | Last Updated 31 Jan 2013
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