Javascript 在iframe内打开asp.net页

Javascript 在iframe内打开asp.net页,javascript,jquery,asp.net,vb.net,iframe,Javascript,Jquery,Asp.net,Vb.net,Iframe,在我的网站上我有两个页面。。。一个是Assistance.aspx,另一个是Help01.aspx 我要做的是打开iFrame中的第二个页面,该页面位于表格列中。此列属于Assistance.aspx页面中的表格: 为此,我使用以下代码: <iframe id="iFrame" runat="server" class="tablecolumndiv" > 它给了我一个错误: 对象引用未设置为对象的实例。 因为Me.FindControl(“iFrame”)没有任何值 当我从元素

在我的网站上我有两个页面。。。一个是
Assistance.aspx
,另一个是
Help01.aspx

我要做的是打开
iFrame
中的第二个页面,该页面位于表格列中。此列属于
Assistance.aspx
页面中的表格:
为此,我使用以下代码:

<iframe id="iFrame" runat="server"  class="tablecolumndiv" >
它给了我一个错误:
对象引用未设置为对象的实例。

因为
Me.FindControl(“iFrame”)
没有任何值
当我从元素中删除
runat
时,该错误被消除。 为什么?

*其他信息*

出于同样的原因,我还使用了以下脚本:

<script type="text/javascript">
    function setPage(frame, pName) {
        document.getElementById(frame).src = pName;
    }
</script>

这个脚本也给我带来了同样的错误。

最后,我们看到这个问题有两个解决方案,这两个解决方案中的每一个都有自己的结果。
第一种解决方案是像这样声明iFrame:

Protected WithEvents iFrame As System.Web.UI.HtmlControls.HtmlGenericControl
在按钮单击处理程序中,我们使用:

iFrame.Attributes("src") = "/Pages/Support/Asp/Help01.aspx"
在设计视图区域中,我们使用:

Private Sub button1_Click(sender As Object, e As System.EventArgs) Handles button1.Click
        frame1.Attributes("src") = "/Pages/Support/Asp/Help01.aspx"
End Sub
<iframe id="iFrame" runat="server" class="tablecolumndiv" >

此解决方案效果良好,并产生了极好的效果。
当然,附加信息中描述了另一种解决方案,但需要从设计视图区域的声明中删除
runat=“server”


选择并选择…

当您删除runat=server标记时,我假设代码本身不工作?您是否也关闭了iframe标记?不,代码运行平稳,我没有关闭
iframe
您是否尝试过
iframe.Attributes(“src”)=“/Pages/Support/Asp/Help01.aspx”
?直接来说,如果不使用FindControl,这可能是由于asp.net“更改”了id(它会添加父id和各种垃圾)。运行页面并在浏览器中使用chrome dev tools/firebug检查元素并检查id(或仅查看源代码)。但是,对于不需要使用FindControl的服务器端控件,可以通过id:
iFrame.Attributes
Yes引用,并且运行非常好。。。但当我在屏幕上看到它时,它会变白两到三十秒,然后给出我需要的结果。
iFrame.Attributes("src") = "/Pages/Support/Asp/Help01.aspx"
<iframe id="iFrame" runat="server" class="tablecolumndiv" >