Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Parent.FindControl()不工作?_Asp.net_Javascript_Findcontrol - Fatal编程技术网

Asp.net Parent.FindControl()不工作?

Asp.net Parent.FindControl()不工作?,asp.net,javascript,findcontrol,Asp.net,Javascript,Findcontrol,我有一个带有iframe的页面 从iframe中的一个页面中,我想回顾一下,并使默认页面上的面板不可见,因为它遮挡了弹出窗口 我尝试使用Parent.FindControl,但它似乎不起作用。我确信我在findcontrol中有正确的id,因为我使用Firebug检查面板,并从那里复制了id 有人知道我遗漏了什么吗?对于初学者来说,FindControl不是Javascript中的函数。对于初学者来说,FindControl不是Javascript中的函数。我并没有完全理解您的问题,但我会尽力解

我有一个带有iframe的页面

从iframe中的一个页面中,我想回顾一下,并使默认页面上的面板不可见,因为它遮挡了弹出窗口

我尝试使用Parent.FindControl,但它似乎不起作用。我确信我在findcontrol中有正确的id,因为我使用Firebug检查面板,并从那里复制了id


有人知道我遗漏了什么吗?

对于初学者来说,FindControl不是Javascript中的函数。

对于初学者来说,FindControl不是Javascript中的函数。

我并没有完全理解您的问题,但我会尽力解决

听起来您有一个ASP.NET页面,其中有一个iframe引用另一个ASP.NET页面,并且在iframe请求的页面中,您希望修改包含iframe的页面中包含的项目的可见性

如果我对你的问题的理解是正确的,那么你这里有一些令人讨厌的问题

浏览器级别的实际情况是加载第一个页面,该页面中有一个iframe,它向服务器发出第二个请求。 第二个请求无法找到您的控件,因为它不在同一页中,并且在该请求期间不活动。 因此,这里有一些备选方案:

去掉iframe并使用面板。这将使他们在同一个请求,并能够找到对方。 此外,当您执行此操作时,您将希望使用Page.FindControl而不是Parent.FindControl,因为FindControl方法只搜索控件的子控件集合,我猜想您的控件将位于页面上的其他位置。 在iframe的客户端,您可以使用一些javascript代码访问外部页面的DOM,并在那里设置它的可见性。
我没有完全理解你的问题,但我会尽力解决

听起来您有一个ASP.NET页面,其中有一个iframe引用另一个ASP.NET页面,并且在iframe请求的页面中,您希望修改包含iframe的页面中包含的项目的可见性

如果我对你的问题的理解是正确的,那么你这里有一些令人讨厌的问题

浏览器级别的实际情况是加载第一个页面,该页面中有一个iframe,它向服务器发出第二个请求。 第二个请求无法找到您的控件,因为它不在同一页中,并且在该请求期间不活动。 因此,这里有一些备选方案:

去掉iframe并使用面板。这将使他们在同一个请求,并能够找到对方。 此外,当您执行此操作时,您将希望使用Page.FindControl而不是Parent.FindControl,因为FindControl方法只搜索控件的子控件集合,我猜想您的控件将位于页面上的其他位置。 在iframe的客户端,您可以使用一些javascript代码访问外部页面的DOM,并在那里设置它的可见性。 父文档:

<body>
    <input type="text" id="accessme" value="Not Accessed" />
    ...
</body>
iframe中的文档:

<head>
    ...
    <script type="text/javascript">
        function setValueOfAccessme()
        {
            window.parent.document.getElementById("accessme").value = "Accessed";
        }
    </script>
</head>
<body onload="setValueOfAccessme();">
</body>
iframe中的文档在加载时访问窗口对象上的文档对象,并使用getElementId函数设置父文档正文中的输入值。

父文档:

<body>
    <input type="text" id="accessme" value="Not Accessed" />
    ...
</body>
iframe中的文档:

<head>
    ...
    <script type="text/javascript">
        function setValueOfAccessme()
        {
            window.parent.document.getElementById("accessme").value = "Accessed";
        }
    </script>
</head>
<body onload="setValueOfAccessme();">
</body>

iframe中的文档在加载时访问窗口对象上的文档对象,并使用getElementId函数设置父文档正文中的输入值。

或者,这里有一个更有用的find控件例程

Public Shared Function MoreHelpfulFindControl(ByVal parent As UI.Control, ByVal id As String) As UI.Control
    If parent.ID = id Then Return parent
    For Each child As UI.Control In parent.Controls
        Dim recurse As UI.Control = MoreHelpfulFindControl(child, id)
        If recurse IsNot Nothing Then Return recurse
    Next
    Return Nothing
End Function

或者这里有一个更有用的查找控制例程

Public Shared Function MoreHelpfulFindControl(ByVal parent As UI.Control, ByVal id As String) As UI.Control
    If parent.ID = id Then Return parent
    For Each child As UI.Control In parent.Controls
        Dim recurse As UI.Control = MoreHelpfulFindControl(child, id)
        If recurse IsNot Nothing Then Return recurse
    Next
    Return Nothing
End Function