1

我有一个带有 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");

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

4

1 回答 1

0

我认为您将不得不调用一些javascript并将其传递回父级,因为任何从父级代码隐藏中读取值的尝试都不会给您任何帮助,您将读取页面的新实例化版本的值和不是那个显示的...

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

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

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

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

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

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

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

于 2013-07-03T13:28:27.693 回答