Вы должны проверить Sidekiq .
RailsCasts эпизод о Sidekiq.
this.Page
или откуда угодно:
Page page = HttpContext.Current.Handler as Page
Я не могу придумать какой-либо веской причины для того, чтобы пользовательский элемент управления знал что-либо о странице, на которой он находится, поскольку пользовательский элемент управления должен игнорировать свой контекст и вести себя предсказуемо независимо от того, на какой странице он находится. .
При этом вы можете использовать this.Page
.
вы можете использовать свойство Parent
, если вам нужно это, чтобы найти элемент управления на странице, тогда вы можете использовать
Label lbl_Test = (Label)Parent.FindControl("lbl_Test");
Я обнаружил, что способ сделать это - создать интерфейс, реализовать этот интерфейс, использовать this.Page для получения страницы из элемента управления, привести ее к интерфейсу и затем вызвать метод.
Я всегда использовал this.Page в System.Web.UI.UserControl.
Или вы всегда можете выполнить рекурсивный вызов Родителя, пока не столкнетесь с объектом, который является страницей.
своего рода излишек, хотя ...
protected Page GetParentPage( Control control )
{
if (this.Parent is Page)
return (Page)this.Parent;
return GetParentPage(this.Parent);
}
Каждый элемент управления имеет родительское свойство, которое вы можете использовать для доступа к родительскому объекту.
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(this.Parent.ID);
}
РЕДАКТИРОВАТЬ: зависит от того, в каком из событий жизненного цикла страницы вы хотите сохранить ссылку и что использовать для хранения этой ссылки. Однако ссылка всегда доступна