Click here to Skip to main content
12,074,995 members (60,728 online)

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;
                        }
 
                        rows.Cells[cCount].Controls.Add(l);
                    }
                    else
                    {
                        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.DataBind();
 
                            ddlStatus.Items.Add(new ListItem("--Select Status--", "0"));
                            ddlStatus.SelectedValue = "0";
                            //adding Event to DropdownList
                            ddlStatus.SelectedIndexChanged += new EventHandler(GVDropDownSelectIndexChanged); 
                            ddlStatus.AutoPostBack = true;
                            rows.Cells[cCount].Controls.Add(ddlStatus);
                            GridView1.HeaderRow.Cells[cCount].Text = "";
                        }
                        else
                        {
                            TextBox t = new TextBox();
                            t.ID = "gvtxt" + dataTable.Columns[cCount].ColumnName;
                            rows.Cells[cCount].Controls.Add(t);
 
                            Label lID = new Label();
                            lID.ID = "gvlbl" + dataTable.Columns[cCount].ColumnName + "Id";
                            lID.Text = dataTable.Rows[row1][cCount].ToString();
                            lID.Visible = false;
                            rows.Cells[cCount].Controls.Add(lID);
                        }
                    }
                }
 
                row1++;
            }
}

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

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

protected void Page_Load(object sender, EventArgs e)
    {
        try
        {            
            if (!IsPostBack)
            {
                //my stuff
            }
 
            PopulateGridViewDetails();            
        }
        catch (Exception)
        {
            throw;
        }
    }

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

Preview



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.
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 | Mobile
Web04 | 2.8.160208.1 | Last Updated 26 Mar 2009
Copyright © CodeProject, 1999-2016
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