Получение элемента управления со страницы ascx в ASP.Net - PullRequest
4 голосов
/ 16 августа 2011

У меня есть пользовательский элемент управления .ascx, который находится на моей странице search.aspx. Как получить элемент управления из пользовательского элемента управления .ascx в коде search.aspx.cs?

keywordSearch.Value = "value"; 
// the code behind can't see the keywordSearch control

Ответы [ 3 ]

3 голосов
/ 16 августа 2011

В коде вашего пользовательского элемента управления вы можете предоставить публичное (или внутреннее) свойство, которое позволяет «получить» элемент управления в пользовательском элементе управления. Затем вы можете получить доступ к этому свойству из кода вашей страницы.

3 голосов
/ 16 августа 2011

Обычно внутренние элементы управления не предоставляются шаблонными пользовательскими элементами управления, поскольку они объявлены как protected. Однако вы можете выставить элемент управления в публичной собственности, например так:

public TextBox CustomerName {
    get { return txt_CustomerName; }
}

Редактировать: если вам нужно установить значение элемента управления, то лучше использовать свойство, которое предоставляет значение, а не элемент управления:

public string CustomerName {
    get { return txt_CustomerName.Text; }
    set { txt_CustomerName.Text = value; }
}
1 голос
/ 16 августа 2011

Попробуйте метод FindControl для доступа к элементу управления на странице контейнера:

((TextBox)Page.FindControl("keywordSearch")).Value = "value";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...