在 FormView 中找不到控件?
Posted
技术标签:
【中文标题】在 FormView 中找不到控件?【英文标题】:can't find control in FormView? 【发布时间】:2011-08-31 15:05:41 【问题描述】:我需要在FormView
控件中找到这个<a>
标签,我需要根据条件删除这个标签,但我无法使用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】: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
。
【讨论】:
我可以遍历 Formview 中的所有行吗? @PankajGarg,我不确定你所说的所有行是什么意思! FormView 一次只显示一个数据行 - 可以通过Row
属性访问。其他行对象可能基于设置存在,例如HeaderRow
、FooterRow
、TopPagerRow
等以上是关于在 FormView 中找不到控件?的主要内容,如果未能解决你的问题,请参考以下文章
在页面中找不到控件,但仅在通过 selenium-server 运行时
Android Studio DrawerLayout控件在v4包中找不到