【问题标题】:Accessing .Net Controls in an iFrame from Parent Codebehind从父代码隐藏访问 iFrame 中的 .Net 控件
【发布时间】:2013-07-03 13:23:44
【问题描述】:

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

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

【问题讨论】:

  • 这是不可能的。你想达到什么目的?
  • 最好使用用户控制好友

标签: asp.net iframe code-behind


【解决方案1】:

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

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

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

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

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

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

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

听起来很啰嗦,不过一旦开始就足够简单了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多