2011-02-10 5 views
0

Я пытаюсь использовать уже написанный код, который обращается к элементу управления из другого элемента управления в следующем коде.Доступ к UserControl из другого Usercontrol

Controls_SearchFeaturedMerchants UCMerchant = (Controls_SearchFeaturedMerchants) this.Parent.FindControl ("UCSearchFeaturedMerchants1");

Мне интересно, что говорится в этом заявлении. Может кто-то, пожалуйста, дайте мне некоторую идею :)

Заранее благодарим!

+0

Связанные вопрос: http://stackoverflow.com/questions/11666607/accessing-an-object-on-usercontrol-from-another-usercontrol-c-sharp –

ответ

1

Если я понял ваш вопрос правильно вот кратко:

На странице (ContentPage) проводит два пользовательских элементов управления (UsrCtrl1, UsrCtrl2).

Теперь «UsrCtrl1» хотел получить доступ к некоторым данным в «UsrCtrl2».

Для этого я буду писать код, как - «UsrCtrl1» родитель является «ContentPage», что страница хостов «UsrCtrl2», поэтому я сначала получить «UsrCtrl2» от родительской страницы с помощью следующего кода:

this.Parent.FindControl("UsrCtrl2Name") ->это означает текущий пользовательский элемент управления, который является «UsrCtrl1» и родитель средством является «ContentPage» (это может быть родительский контроль или страницы) в том, что вы пытаетесь найти Contrl с Id «UsrCtrl2Name» (это идентификатор 2-го пользовательского элемента управления на странице содержимого).

Когда вы используете метод FindContrl, он всегда возвращает базовый тип UserControl, и вам нужно отдать его в usercontrol, в этом случае он имеет тип «UsrCtrl2».

Я надеюсь, что это ясно сейчас.

+0

Функция FindControl() 'требует идентификатора элемента управления, а не имени. Кроме того, 'this.Parent' не обязательно ссылается на страницу, а на родительский элемент управления, который может быть страницей, панелью и т. Д. – Nimrod

+0

@Nimrod: Спасибо, я сейчас редактировал. Родитель в этом примере - это ContentPage, поэтому я специально упомянул об этом, так или иначе, я добавил свою точку зрения. :) Благодаря. – JPReddy

+0

Awesome .. Спасибо Reddy :) – Ram

0

в текстовом виде: Получите родительский контроль текущего элемента управления, а затем найдите UCSearchFeaturedMerchants1 на указанном элементе управления. Передайте результат в Controls_SearchFeaturedMerchants.

Надежда, что подводит итог для вас

Смежные вопросы