Получение скрытого контроля над родителем из кода iFramed - PullRequest
0 голосов
/ 06 сентября 2011

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

<input type="hidden" id="CaseID" value="" runat="server" />

Мне нужно, чтобы моя страница в iFrame могла получить это значение из кода C #.Я до сих пор был неудачен.

В коде дочерней страницы я пробовал варианты этого:

var theParent = this.Page.Parent;

Но я всегда получаю ноль обратно.помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 06 сентября 2011

С точки зрения сервера, вообще нет никакой связи между страницей, которая запускает iframe, и страницей, которая содержится в этом iframe.Это два совершенно разных и не связанных HTTP-запроса.В вашем коде позади они не имеют ничего общего, и нет никакого способа сослаться на одно из другого.

Таким образом, вам нужно будет использовать тот же подход, что и в случае необходимости «переместить»"данные с одной страницы на другую.Два общих способа (хотя это ни в коем случае не являются единственными или даже лучшими способами):

  • Объект Session.PageABC может хранить часть данных в сеансе, а PageXYZ может читать эти данные из сеанса.
  • Параметр URL-адреса по запросу.PageABC может вызывать URL (возможно, даже использовать его в качестве SRC iFrame, подсказка) как-то так: PageXYZ.aspx? SomeKey = someValue.PageXYZ может получить доступ к параметрам URL из объекта Request (Request ["someKey"])

Что еще нужно учитывать: если PageABC и PageXYZ работают совместно друг с другом, возможно, если они будут отдельными страницами, то это не так 'т лучший подход.Для PageXYZ может иметь больше смысла быть на самом деле ControlXYZ и содержаться на PageABC.Он по-прежнему может быть представлен пользователю в виде всплывающего окна с помощью диалогов jQuery (или с помощью UpdatePanels и ModalPopupExtenders, если вы мазохистки;).

...