значение элемента управления веб-пользователя, установленное на странице aspx

Возможно ли это, у меня есть код С#, который добавляет веб-элемент управления на страницу aspx, см. ниже:

 UserControl myUserControl;
 myUserControl = (UserControl)LoadControl("../TempLayouts/LayoutSize.ascx");
 PlaceHolder1.Controls.Add(myUserControl);

На моем ascx у меня есть следующий код:

private int Edit_Mode = 0;
public int Get_EditMode
{
    get { return Edit_Mode; }
    set { Edit_Mode = value; }
}
protected void Page_Load(object sender, EventArgs e)
{ if(Edit_Mode == 1)//do something}

Как я могу установить значение Edit_Mode равным 1 при вызове пользовательского веб-элемента управления в приведенном выше коде «Атрибуты»?

Это возможно без кастинга?


person Chris    schedule 09.12.2010    source источник


Ответы (2)


Вам нужно добавить ссылку на класс в файл aspx, примерно так:

<%@ Reference Control="../TempLayouts/LayoutSize.ascx" %>

Затем в вашем файле aspx.cs добавьте что-то вроде этого:

ASP.LayoutSize_ascx myUserControl;
myUserControl = (ASP.LayoutSize_ascx)LoadControl("../TempLayouts/LayoutSize.ascx");
myUserControl.Edit_Mode = 1;

Вам нужно проверить имя класса вашего элемента управления.

person Christian Allin    schedule 09.12.2010
comment
Почему вы не хотите использовать кастинг? - person Christian Allin; 09.12.2010

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

person Marcie    schedule 09.12.2010
comment
Невозможно использовать веб-управление, так как это может быть другое веб-управление - person Chris; 09.12.2010
comment
Будет ли у другого веб-контроля свойство Edit_Mode? - person Marcie; 09.12.2010