Ссылка.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;