Click here to Skip to main content
15,885,365 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
C#
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                var firstCell = e.Row.Cells[4];
                firstCell.Controls.Clear();
                Button btn_chk = new Button();
                btn_chk.Text = firstCell.Text;
                btn_chk.CommandName = "btn_chk";
                //firstCell.Controls.Add(new HyperLink { NavigateUrl = "Default.aspx?Search="+firstCell.Text+"|"+e.Row.Cells[3].Text, Text= firstCell.Text });
                firstCell.Controls.Add(btn_chk);
            }
        }
        protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
        {

        }

I am able to add a button in RowDataBound event but not in RowCreated event.

Actual Problem:Data is binded to grid only first time of page load.
When the button is added on RowDataBound then on click of that button, the control doesn't render on consequent postbacks

C#
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                List<string> years = new List<string>();
                for (int i = 0; i > -6; i--)
                {
                    years.Add(DateTime.Now.AddYears(i).ToString("yyyy"));
                }
                drpYear.DataSource = years;
                drpYear.DataBind();
                DataSet dt = GetExistingRecords();
                GridView1.DataSource = dt;
                GridView1.DataBind();
            }
        }

So tell me a way to add controls to a grid in code behind(i don't want to use Template fields)
Which will be rendered even on the second postback();
Posted
Updated 1-Jul-13 17:59pm
v3

1 solution

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



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900