FindControl - 无法找到下拉列表

时间:2011-11-30 11:13:06

标签: c# asp.net drop-down-menu findcontrol

我有一个下拉列表:

<asp:DropDownList ID="ddlGoalKeeper" runat="server">
                </asp:DropDownList>

一个不错的小家伙。我有一些代码可以找到它:

DropDownList myControl1 = (DropDownList)Page.FindControl("ddlGoalKeeper");

不是..只是我的myControl1没有设置...所以当我稍后在我的代码中尝试将visible设置为true时,它不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

我遇到的一个原因是,如果控件是在网站使用母版页的情况下,那么我无法工作。

您可以使用此提示首先获取母版页的引用,然后从内容页面获取正确的控件:

 ContentPlaceHolder MainContent = Page.Master.FindControl("MainContent") as ContentPlaceHolder;
 DropDownList myControl1 = (DropDownList)MainContent.FindControl("ddlGoalKeeper");

答案 1 :(得分:0)

为什么不设置ddlGoalKeeper.Visible = true;直接?

答案 2 :(得分:0)

我不确定您为什么尝试使用FindControl,如果您希望切换可见性,则最简单的方法是使用ddlGoalKeeper.Visible,因为控件可用。

如果它包含在某个其他控件中表示网格,那么您必须在父控件中找到它,就像在网格[gridrow1].FindControl("ddlGoalKeeper")的特定行中一样,那么它会更有意义。