Контроль доступа из .aspx в .ascx - PullRequest
1 голос
/ 12 октября 2011

У меня есть пользовательский элемент управления под названием OrderForm.ascx.У меня также есть файл .aspx, который использует элемент управления OrderForm.

Я хочу получить доступ к элементу управления в файле .aspx из элемента управления OrderForm.Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 12 октября 2011

Вы можете использовать метод FindControl в пользовательском элементе управления следующим образом:

Label label = Page.FindControl("Label1") as Label;
if (label != null)
    string labelText = label.Text;

Как примечание выше, в зависимости от того, где находится Метка на странице, вам может понадобиться рекурсия, чтобы найти Метку.

Вы также можете создать свойство на странице, которое возвращает текст метки:

public string LabelText
{
    get { return Label1.Text; }
}

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

Вариант № 1

string labelText = ((PageName)Page).LabelText;

Вариант № 2

string labelText = Page.GetType().GetProperty("LabelText").GetValue(Page, null).ToString();
0 голосов
/ 12 октября 2011

Если у вас есть два пользовательских элемента управления, ControlA и ControlB, и оба они зарегистрированы на одной странице, вы можете легко получить доступ к одному из другого. Просто создайте публичное свойство, к которому вы хотите иметь доступ в ControlB, например:

Public ReadOnly Property ControlB_DDL() As DropDownList
    Get
        Return Me.ddlItems
    End Get
End Property

И затем вы можете ссылаться на это свойство в ControlA после нахождения этого элемента управления:

ControlB ctrlB = (ControlB)Page.FindControl("cB");
DropDownList ddl = ctrlB.ControlB_DDL;

Более подробную информацию см. Здесь: http://www.dotnetcurry.com/ShowArticle.aspx?ID=155

...