7

我在一个网站上工作asp.Net,我正在使用iframe加载一个单独的页面。名为 的单独页面Districting.aspx包括一个asp button,它onClick()调用 C# 中的一个函数,名为DoneClicked()。这是asp按钮控件:

<asp:Button ID="LinkButtonDone" CssClass="button button-yellow" runat="server" OnClick="DoneClicked" Text="Done" />

在后面的代码中,DoneClicked 函数:

protected void Doneclicked(object sender, EventArgs e)
    {
        // Some code here
        // Calling a function from Default page
    }

我需要做的是在函数结束时,必须调用页面中DoneClicked的函数。Default.aspx

那么如何从Default.aspx.cs后面的 iframe 页面代码中访问函数呢?

谢谢:)

4

3 回答 3

3

在下面试试对我有用

在代码后面

protected void Doneclicked(object sender, EventArgs e)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "scriptid", "window.parent.location.href='ParentPageName.aspx';", true);  
 }
于 2012-11-21T13:19:29.047 回答
2

您不能直接访问它(至少不是以可取的方式)。

您应该将 Default.aspx 中的公共代码抽象为一个可供两个页面使用的类。

于 2012-11-21T11:47:58.813 回答
0

您不能直接执行此操作,但您可以使用 javascript 间接执行此操作。

因此,您在默认页面上创建了一个隐藏按钮,该按钮可以调用该DoneClicked函数:

<div style="display:none">
    <asp:Button ID="Done" runat="server" ClientIDMode="Static" OnClick="DoneClicked " />
</div>

在加载的iframe地方Districting.aspx,您可以通过单击使用javascript的按钮来调用“DoneClicked”:

<script type="text/javascript">
   window.parent.document.getElementById('Done').click();
<script>

请注意,ClientIDMode="Static"因为从其他页面您无法知道呈现的 id 是什么,所以保持静态。如果您不使用具有静态 id 的 dot net 4,那么您还需要使用 javascript 将呈现的 id 发送到页面,或其他方式来定位按钮。

另请注意window.parent.,从 iframe 中“可以看到”包含 iframe 的页面的控件的 DOM 结构。

于 2012-11-21T11:59:51.623 回答