Dynamically created LinkButton's Click event is not firing in RowCommand of GridView.
protected void grdResult_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { int J = e.Row.RowIndex + 1; for (int i = 0; i < dt.Columns.Count; i++) { ImageButton imgbtn = new ImageButton(); Label lbl = new Label(); HiddenField hdnRemarks = new HiddenField(); if (i == (dt.Columns.Count - 1) && J > 2) { imgbtn.ID = "imgbtn" + i; imgbtn.CommandName = "viewremarks"; imgbtn.Command += LinkButton_Command; e.Row.Cells[i].Controls.Add(imgbtn); imgbtn.Height = 15; imgbtn.Width = 15; imgbtn.ImageUrl = "~/App_Themes/Images/magnifier-1.png"; hdnRemarks.ID = "hdnRemarks" + i; e.Row.Cells[i].Controls.Add(hdnRemarks); hdnRemarks.Value = dt.Rows[J - 1][dt.Columns[i].ColumnName.ToString()].ToString(); } else { lbl.ID = "lbl" + i; e.Row.Cells[i].Controls.Add(lbl); lbl.Text = dt.Rows[J - 1][dt.Columns[i].ColumnName.ToString()].ToString(); } } } } protected void grdResult_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "viewremarks") { //GridViewRow row = (GridViewRow)((ImageButton)e.CommandSource).NamingContainer; } } protected void grdResult_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { int J = e.Row.RowIndex + 1; for (int i = 1; i < e.Row.Cells.Count; i++) { ImageButton imgbtn = new ImageButton(); Label lbl = new Label(); HiddenField hdnRemarks = new HiddenField(); if (i == e.Row.Cells.Count && i > 2) { imgbtn.ID = "imgbtn" + i; imgbtn.CommandName = "viewremarks"; imgbtn.Command += LinkButton_Command; e.Row.Cells[i].Controls.Add(imgbtn); imgbtn.Height = 15; imgbtn.Width = 15; imgbtn.ImageUrl = "~/App_Themes/Images/magnifier-1.png"; hdnRemarks.ID = "hdnRemarks" + i; e.Row.Cells[i].Controls.Add(hdnRemarks); } else { lbl.ID = "lbl" + i; e.Row.Cells[i].Controls.Add(lbl); lbl.Text = Convert.ToString(J); } } } }