Non riesci a trovare i controlli in FormView.InsertItemTemplate anche su eventi DataBound
-
01-10-2019 - |
Domanda
Ho FormView
nella mia pagina markup:
<asp:FormView ruanat="server" ID="FormView1" DataSourceID="SqlDataSource1" OnDataBinding="FormView1_DataBinding" OnDataBound="FormView1_DataBound">
<InsertItemTemplate>
<uc:UserControl1 runat="server" ID="ucUserControl1" />
</InsertItemTemplate>
</asp:FormView>
<asp:SqlDataSource runat="server" ID="SqlDataSource1" SelectCommand="EXEC someSP" />
E 'di code-behind è stata ??strong>:
protected void FormView1_DataBound(object sender, EventArgs e)
{
var c = FormView1.FindControl("ucUserControl1"); // returns null
}
Divenne :
protected void FormView1_DataBinding(object sender, EventArgs e)
{
FormView1.ChangeMode(FormViewMode.Insert);
}
protected void FormView1_DataBound(object sender, EventArgs e)
{
if (FormView1.CurrentMode = FormViewMode.Insert)
{
var c = FormView1.FindControl("ucUserControl1"); // returns null no more!
}
}
In teoria, sono in grado di trovare il controllo su FormView
dopo essere legato dati. Ma non lo sono. Perché?
Soluzione
If (FormView1.CurrentMode == FormViewMode.Insert)
var c = FormView1.FindControl("ucUserControl1");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow