J
James G. Beldock
I have seen the following behavior: when issuing a Page.FindControl() for a
control which exists in an item template (from within an ItemDataBound()
event, for example), I get nulls back regularly. Has anyone seen this
before? It's pretty aggravating to have to iterate through the controls in
each grid cell to find the ones I need, especially since finding those cells
is not always easy. Here's my ItemDataBound() handler:
private void streetAddressGrid_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
streetAddressGrid.EditItemIndex = e.Item.ItemIndex;
streetAddressGrid.DataBind();
DB.DbStreet_Address sa = new DB.DbStreet_Address();
sa.Street_Address_ID=
(SqlInt32)System.Convert.ToInt32((e.Item.Cells[0].Controls[1] as
Label).Text);
sa.SelectOne();
// exceptions begin here; even though these controls exist, FindControl()
returns null
(e.Item.FindControl("line_1") as TextBox).Text = sa.Line_1.ToString();
(e.Item.FindControl("line_2") as TextBox).Text = sa.Line_2.ToString();
(e.Item.FindControl("line_3") as TextBox).Text = sa.Line_3.ToString();
(e.Item.FindControl("city") as TextBox).Text = sa.City.ToString();
(e.Item.FindControl("state") as TextBox).Text = sa.State.ToString();
(e.Item.FindControl("postal_code") as TextBox).Text =
sa.Postal_Code.ToString();
(e.Item.FindControl("country") as TextBox).Text = sa.Country.ToString();
}
Any thoughts would be appreciated!
Thanks,
/s/ James
control which exists in an item template (from within an ItemDataBound()
event, for example), I get nulls back regularly. Has anyone seen this
before? It's pretty aggravating to have to iterate through the controls in
each grid cell to find the ones I need, especially since finding those cells
is not always easy. Here's my ItemDataBound() handler:
private void streetAddressGrid_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
streetAddressGrid.EditItemIndex = e.Item.ItemIndex;
streetAddressGrid.DataBind();
DB.DbStreet_Address sa = new DB.DbStreet_Address();
sa.Street_Address_ID=
(SqlInt32)System.Convert.ToInt32((e.Item.Cells[0].Controls[1] as
Label).Text);
sa.SelectOne();
// exceptions begin here; even though these controls exist, FindControl()
returns null
(e.Item.FindControl("line_1") as TextBox).Text = sa.Line_1.ToString();
(e.Item.FindControl("line_2") as TextBox).Text = sa.Line_2.ToString();
(e.Item.FindControl("line_3") as TextBox).Text = sa.Line_3.ToString();
(e.Item.FindControl("city") as TextBox).Text = sa.City.ToString();
(e.Item.FindControl("state") as TextBox).Text = sa.State.ToString();
(e.Item.FindControl("postal_code") as TextBox).Text =
sa.Postal_Code.ToString();
(e.Item.FindControl("country") as TextBox).Text = sa.Country.ToString();
}
Any thoughts would be appreciated!
Thanks,
/s/ James