2010-04-23 4 views
3

FormView У меня есть в моей разметке:Не можете найти элементы управления в FormView.InsertItemTemplate даже на DataBound случае

<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" /> 

Это код-за WAS:

protected void FormView1_DataBound(object sender, EventArgs e) 
{ 
    var c = FormView1.FindControl("ucUserControl1"); // returns null 
} 

СТАЛ:

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! 
    } 
} 

В теории я могу найти элемент управления на FormView после того, как он привязан к данным. Но не я. Зачем?

ответ

5
If (FormView1.CurrentMode == FormViewMode.Insert) 
     var c = FormView1.FindControl("ucUserControl1"); 
+0

Я отредактировал мой ответ будет более ясно – abatishchev

+0

попробовать обновленный код – Glennular

+0

Может ли мой код обновления будет решить эту проблему? Или где лучше всего менять режим? 'DataBiding',' DataBound'? – abatishchev

 Смежные вопросы

  • Нет связанных вопросов^_^