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


Id like to reference a property in my.aspx from my.ascx.

Lets say my page class is:

public partial class MyAdminPage : System.Web.UI.Page

Я ожидал, что смогу сделать из моего.ascx:

MyAdminPage myPageInstance = (MyAdminPage) this.Page;

или же

MyAdminPage myPageInstance = this.Page as MyAdminPage;

Что я не могу.

How could I reference my page class from the.ascx?

Обновление 1

Спасибо за ответы.

Я забыл упомянуть, что.aspx имеет главную страницу, а внутри contentPlaceholder находится элемент управления.ascx.

Так что из моего.ascx, если я делаю:
this.Parent -> я получаю ссылку на "ContentPlaceHolder"
this.Parent.Parent -> Я получаю ссылку на "HtmlForm"
this.Parent.Parent -> ссылка на "MasterPage".

I will not reuse the.ascx in any other.aspx pages just the one.

4 ответа

Решение

Комментарий sJohnny точен, вам не следует пытаться изменять свойства parent (page) из child (control). Один хороший способ справиться с этой ситуацией - дать ребенку событие, когда ему нужно, чтобы родитель действовал. Таким образом, родитель может просто подписаться на событие и вызвать любые свойства, которые ему нужны в это время. Таким образом, ваш пользовательский элемент управления никоим образом не связан с реализацией этой конкретной страницы.

Ты можешь попробовать

MyAdminPage myPageInstance = this.Parent as MyAdminPage;
if(myPageInstance != null)
{
...
}
MyAdminPage myPageInstance = 
     (MyAdminPage)this.parent;//in you ascx will do the task

также проверьте: использование свойств родительской страницы в пользовательском элементе управления

Вы также можете использовать MyAdminPage myPageInstance = (MyAdminPage)this.Page;

Другие вопросы по тегам