【发布时间】:2012-10-08 16:52:42
【问题描述】:
所以我对非 mvc 网络开发还很陌生,我遇到了 iFrame 的问题。
在我的主页中,我有一个通过 jQuery 显示和隐藏 iframe 的复选框。在我的 iFrame 代码隐藏中,我有一个方法 loadStuff(),我只想在 iFrame 可见时运行它。也就是说,我不想只将其粘贴在 page_load 中,因为如果这样做,它将在每次刷新主页时尝试运行。
所以我想我只是检查一下主窗口中的复选框是否被选中,如果是,则运行 loadStuff() 方法。
问题是,我不知道如何从 iFrame 的代码隐藏中访问该复选框。似乎this.Parent.FindControls() 的某些变体可以工作,但我没有任何运气。
这是我所拥有的一点点:
主页(我们称之为mainpage.aspx):
<input type="checkbox" id="showIFrame" onclick="if(this.Clicked) $('#iframe').show(); else $('#iframe').hide();" />
//...
<div id="iframe" style="display:none;">
<iframe runat="server" id="iframeNetSheet" .../></iframe>
</div>
因此,当单击该复选框时,会显示 iFrame。那是我想调用加载函数的时候。到目前为止,它在 iFrame 的 page_load 中,每次加载父页面时都会命中。
谁能帮我指出正确的方向?
【问题讨论】:
-
对不起,我很困惑...当您说从 iFrame 的代码隐藏中访问复选框时,您是在说在请求 iFrame 页面时能够从服务器查看父页面上的控件?对于作为 iFrame 的一部分请求的内容,这不是您应该从父页面中的 jQuery 控制的东西吗?如果我的手杖末端有误,我深表歉意。 (编辑:我的意思是,如果您将 iFrame
src设置为“about:blank”以启动,然后仅在使 iFrame 可见时设置正确的src) -
@freefaller 不确定您所说的“作为 iFrame 的一部分所要求的内容”是什么意思。我想我 应该 做的是仅在选中复选框时才加载 iFrame,但坦率地说,我也不知道该怎么做。我将编辑问题以使其更清楚。
-
是的,对不起,你不会认为英语是我的第一语言!我的意思是,除非您开始通过查询字符串传递内容,或者提交以 iFrame 作为目标的表单,否则您不会(作为标准)获得有关传递到 iFrame 的父页面的任何信息。我仍然认为,当您使 iFrame 可见时,您应该只考虑设置 iFrame 的
src属性 -
@freefaller 这就是你会这样做的方式吗?我觉得好像有一种更简单的方法可以做到这一点。顺便检查一下我的编辑
-
重新加载页面时,您是否希望复选框处于相同状态? (即,如果选中,仍然在回发时选中,因此 iFrame 是可见的?)
标签: c# asp.net iframe code-behind