从iFrame代码隐藏中获取父级的隐藏控件

时间:2011-09-06 15:57:16

标签: c# asp.net iframe parent

在我的父页面中,我有一个隐藏的控件:

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

我需要iFrame中的页面才能从C#代码隐藏中获取此值。到目前为止我没有成功。

在子页面的代码隐藏中,我尝试过各种变体:

var theParent = this.Page.Parent;

但我总是无效。

非常感谢任何协助。

1 个答案:

答案 0 :(得分:0)

从服务器的角度来看,启动iframe的页面与该iframe中包含的页面之间根本没有任何关系。它们是两个完全不同且不相关的HTTP请求。在你的代码隐藏中,它们没有任何共同点,也没有办法从另一个中引用它们。

因此,如果需要将数据从一个页面“移动”到另一个页面,则需要使用相同的方法。两种常见的方式(尽管绝不是这些方式,甚至是最好的方法):

  • 会话对象。 PageABC可以在会话中存储一段数据,而PageXYZ可以从会话中读取该数据。
  • 请求中的URL参数。 PageABC可以调用一个URL(甚至可以将它用作iFrame的SRC,hint-hint),如下所示:PageXYZ.aspx?someKey = someValue。 PageXYZ可以从Request对象(Request [“someKey”])
  • 访问URL参数

还有其他需要考虑的事项:如果PageABC和PageXYZ相互配合运行,将它们作为单独的页面可能不是最好的方法。 PageXYZ实际上可能是ControlXYZ并且包含在PageABC上可能更有意义。它仍然可以使用jQuery对话框作为弹出窗口呈现给用户(或者使用UpdatePanels和ModalPopupExtenders,如果你是受虐狂的话)。