从父代码隐藏访问iFrame中的.Net控件

时间:2013-07-03 13:23:44

标签: asp.net iframe code-behind

我有一个带iframe的.aspx页面:

<iframe src="SearchAdv.aspx" id="advSearch" runat="server" frameborder="0" scrolling="no" width="100%" height="500px;" ></iframe>

iFrame指向一个aspx页面,它有几个我需要访问的控件,例如:

<asp:dropdownlist id=ddColumn1 runat="server" AutoPostBack="True" Width="270px" onselectedindexchanged="ddColumn1_SelectedIndexChanged"></asp:dropdownlist>

我需要从父代码隐藏中获取iFrame中的下拉列表的值。我尝试了以下但得到一个空引用错误:

DropDownList DDCol1 = (DropDownList)advSearch.FindControl("ddColumn1");

有什么建议吗?提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为你将不得不调用一些javascript并传回父级,因为任何尝试从父代码后面读取值都不会给你任何东西,你将会读到一个新实例化版本的值你的页面,而不是那个显示的页面......

所以,就工作流而言......

1)您的iFrame下拉菜单被选中(从此列表中删除自动回复)

2)这会在iframe页面中调用javascript函数。

3)iFrame页面javascript可以调用父窗口 - 类似parent.window.functionName(yourListValue);

4)您的父框架应包含将从iFrame窗口接收调用的functionName(val)

5)您的父母functionName(val)现在可以通过Ajax将数据传递给自己,或者首先使用传入的值填充<asp:hidden字段,然后触发您的{{1}控件,然后您可以捕获父页面的代码隐藏中的值。

听起来很啰嗦,但一旦你开始它就很简单。