我正在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
页面中的函数。
那么如何从iframe页面代码中的Default.aspx.cs
访问函数?
谢谢:)
答案 0 :(得分:3)
尝试下面为我工作
在代码背后
protected void Doneclicked(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "scriptid", "window.parent.location.href='ParentPageName.aspx';", true);
}
答案 1 :(得分:1)
您无法直接访问它(至少不是以合理的方式)。
你应该将Default.aspx中的公共代码抽象出一个可以被两个页面使用的类。
答案 2 :(得分:0)
你不能直接这样做,但你可以使用javascript间接做。
因此,您可以在默认页面上创建一个隐藏按钮,该按钮可以将DoneClicked
功能调用为:
<div style="display:none">
<asp:Button ID="Done" runat="server" ClientIDMode="Static" OnClick="DoneClicked " />
</div>
在加载了iframe
的{{1}}内,您可以点击按钮使用javascript调用“DoneClicked”:
Districting.aspx
请注意<script type="text/javascript">
window.parent.document.getElementById('Done').click();
<script>
,因为从其他页面您无法知道渲染ID是什么,所以请保持静态。如果你不使用具有静态id的dot net 4,那么你还需要使用javascript将呈现的id发送到页面,或者以其他方式找到按钮。
另请注意{ifer>可以从iframe中看到包含iframe的页面控件的DOM结构的ClientIDMode="Static"
。