FindControl - не могу найти выпадающий список - PullRequest
2 голосов
/ 30 ноября 2011

У меня есть выпадающий список:

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

Хороший малыш. У меня есть код, чтобы найти его:

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

Не .. просто мои myControl1 не установлены ... поэтому, когда я позже в своем коде пытаюсь установить visible в true, это не сработает.

Есть идеи?

Ответы [ 3 ]

4 голосов
/ 30 ноября 2011

Одна из причин, по которой я столкнулся с тем, чтобы это не работало, заключается в том, что элемент управления - это когда сайт использует главную страницу.

Вы можете использовать эту идею, чтобы сначала получить ссылку на главную страницу, а затемполучить правильный контроль со страницы содержимого:

 ContentPlaceHolder MainContent = Page.Master.FindControl("MainContent") as ContentPlaceHolder;
 DropDownList myControl1 = (DropDownList)MainContent.FindControl("ddlGoalKeeper");
0 голосов
/ 30 ноября 2011

Я не уверен, почему вы пытаетесь использовать FindControl, если вы хотите переключить видимость, самый простой способ - использовать ddlGoalKeeper.Visible, поскольку элемент управления доступен.

В случае, если егосодержится в каком-то другом элементе управления, скажем, сетка, тогда вам нужно будет найти его в родительском элементе управления, как в определенной строке сетки [gridrow1].FindControl("ddlGoalKeeper"), тогда это будет иметь больше смысла.

0 голосов
/ 30 ноября 2011

Почему бы не установить ddlGoalKeeper.Visible = true; непосредственно

...