Good Day,
Hi
I have a grid i am creating template fields dynamically from code behind and i am adding dropdown dynamically it is being added sucessfully
the gridview is being show problemis when i try to get the dropwdown value from grid from looping it gives me error
Unable to cast object of type 'System.Web.UI.WebControls.GridViewRow' to type 'System.Web.UI.WebControls.GridView'.
i am looping throgh the grid view on a button click hers my code
My class file
public class MyGridViewTemplate : ITemplate
{
private DataControlRowType templateType;
private string columnName;
public MyGridViewTemplate(DataControlRowType type, string colname)
{
templateType = type;
columnName = colname;
}
public void InstantiateIn(System.Web.UI.Control container)
{
switch (templateType)
{
case DataControlRowType.Header:
Literal lc = new Literal();
lc.Text = "" + columnName + "";
container.Controls.Add(lc);
break;
case DataControlRowType.DataRow:
DropDownList firstName = new DropDownList();
firstName.ID = "ddl";
Label lastName = new Label();
for (int i = 0; i < 2; i++)
{
firstName.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
container.Controls.Add(firstName);
break;
default:
break;
}
}
and her's my.cs file
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Links");
dt.Columns.Add("Links1");
DataRow dr;
for (int i = 1; i < 10; i++)
{
dr = dt.NewRow();
dr["Links"] = "A" + i;
dr["Links1"] = "B" + i;
dt.Rows.Add(dr);
dt.AcceptChanges();
}
if (!IsPostBack)
{
gvTest.AutoGenerateColumns = false;
TemplateField customField = new TemplateField();
for (int i = 0; i < 10; i++)
{
customField = new TemplateField();
customField.HeaderTemplate = new MyGridViewTemplate(DataControlRowType.Header,i.ToString());
customField.ItemTemplate = new MyGridViewTemplate(DataControlRowType.DataRow,i.ToString());
this.gvTest.Columns.Add(customField);
}
this.gvTest.Columns.Add(customField);
BoundField boundField = new BoundField();
boundField.HeaderText = "Bug ID";
boundField.DataField = "Links";
this.gvTest.Columns.Add(boundField);
gvTest.DataSource = dt;
gvTest.DataBind();
}
}
protected void ButtonShow(object sender, EventArgs e)
{
foreach (GridViewRow grow in gvTest.Rows)
{
DropDownList ddl = (DropDownList)grow.FindControl("ddl");
}
}
I am getting Error on this line
DropDownList ddl = (DropDownList)grow.FindControl("ddl");