не можете найти управление в FormView? - PullRequest
3 голосов
/ 24 мая 2011

Мне нужно найти этот тег <a>, находящийся в элементе управления FormView, мне нужно удалить этот тег в зависимости от условия, но я не могу найти его, используя FormView.FindControl метод

<asp:UpdatePanel ID="upDiscipline" runat="server">
   <ContentTemplate>
        <asp:FormView ID="fvMediaIntro" runat="server">
           <ItemTemplate>           
                  <div class="clipControls">
                     <a runat="server" id="iNeedToFindThis" href="#">here</a>
                  </div>
           </ItemTemplate>
   </ContentTemplate>
</asp:UpdatePanel>

Я пробовал fvMediaIntro.FindControl() и fvMediaIntro.Row.FindControl(), ни один не работал.Любая идея, пожалуйста ??

1 Ответ

7 голосов
/ 24 мая 2011

FindControl будет работать только после того, как будут созданы эти элементы управления, т.е. когда данные связаны с FormView.Поэтому вам нужно использовать соответствующее событие для FormView, например ItemCreated или DataBound.Например,

protected void fvMediaIntro_ItemCreated(Object sender, EventArgs e)
{
   var control = fvMediaIntro.Row.FindControl("iNeedToFindThis") as HtmlAnchor;
}

Предполагая, что вы связываете в page_load или используете разметку, вы также можете безопасно использовать prerender событие родительской страницы / элемента управления для выполнения FindControl.

...