Findcontrol does not find dynamically created control in rowUpdating eventhandler
I am using ITemplate to dynamically create a template field
TemplateField isReqField = new TemplateField();
isReqField.HeaderText = "Lizenz anfordern";
isReqField.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, DataControlRowState.Normal, "isRequested", "bool");
isReqField.EditItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, DataControlRowState.Edit, "isRequested", "bool");
gvLicence.Columns.Add(isReqField);
I am implementing InstantiateIn
public void InstantiateIn(System.Web.UI.Control container)
{
...
CheckBox ckRequest = new CheckBox();
ckRequest.ID = "ckRequest";
ckRequest.DataBinding += new EventHandler(this.CkIsRequested_DataBinding);
container.Controls.Add(ckRequest);
...
}
with DataBinding handler
private void CkIsRequested_DataBinding(Object sender, EventArgs e)
{
CheckBox ckRequest = (CheckBox)sender;
GridViewRow row = (GridViewRow)ckRequest.NamingContainer;
ckRequest.Checked = (bool)DataBinder.Eval(row.DataItem, columnName);
}
But then, in the RowUpdating handler, I cannot find the CheckBox control using the FindControl method:
protected void gvLicence_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
CheckBox chb = (CheckBox)gvLicence.Rows[e.RowIndex].FindControl("ckRequest");
bool requestValue = chb.Checked;
It throws Exeption because gvLicence.Rows [e.RowIndex] .FindControl ("ckRequest") is null.
Thank you very much for your attention and help.
+1
source to share
No one has answered this question yet
See similar questions:
or similar: