我有一个带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");
有什么建议吗?提前致谢。
答案 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}控件,然后您可以捕获父页面的代码隐藏中的值。
听起来很啰嗦,但一旦你开始它就很简单。