Передать значение из aspx в ascx

У меня есть веб-страница, и внутри нее есть пользовательский элемент управления. У меня есть свойство на странице aspx, которое устанавливается в методе pageinit, и мне нужно это свойство на странице ascx. Как я могу получить это?

3 ответа

Решение

Создайте публичное свойство внутри ascx и установите его одновременно с настройкой на странице aspx.

Просто чтобы вы знали, PreInit - это EventHandler, а не метод.

MyAdminPage myPageInstance = this.Parent as MyAdminPage;
if(myPageInstance != null)
{
...
}

Там было несколько вопросов по этому вопросу.

Ссылка.aspx свойство из.ascx

Самые простые варианты следующие:

  1. Используйте открытую переменную и получите доступ к ней с родительской страницы.
  2. Присвойте переменную скрытому полю в интерфейсе ascx. Поле как это: <asp:HiddenField ID="ascxField" runat="server" />,

Пример ниже для #1, но #2 почти то же самое.

Пример № 1:

Страница ASPX:

Внешний интерфейс:

<%@ Register TagPrefix="Admin" TagName="MyUserControl" Src="~/UserControls/.../MyUserControl" %>

...

<Admin:MyUserControl ID="MyUserControl" AutoPostBack="true" runat="server" Visible ="false" />   

Код позади:

 this.MyUserControl.Variable1 = 1;
 this.MyUserControl.Variable2= "value";

Ascx страница:

Код позади

public int Variable1 { get; set; }
public string Variable2 { get; set; }
Другие вопросы по тегам