IFRAME弹出式窗口回发数据到父页面[调用父页JS方法并模拟调用按钮的回发事件]
现在有父级页面A。当点击按钮时弹出iframe嵌入式窗口(页面B),如下图:
我们要实现的功能,就是当点击确认的时候,把弹出窗B页面选中的信息传回主页面A,并对信息进行处理。
首先,在A页面中定义如下用于回发的函数:
<script type="text/javascript">
function ReBind(id) {
__doPostBack('ctl00$PageBody$LinkButton1', id); //模拟调用按钮的回发事件并传入值,此处要获取按钮的客户端ID
tb_remove(); //关闭弹出窗口的方法
}
</script>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"></asp:LinkButton>
A页面后台,按钮回发的事件:
//绑定题目名称
protected void LinkButton1_Click(object sender, EventArgs e)
{
int cdID = int.Parse(Request.Form["__EVENTARGUMENT"].ToString());//题目ID,此处为前台回发传递的参数
/*处理方法*/
}
B页面点击确定按钮时出发的事件:
//确定按钮
protected void Button1_Click(object sender, EventArgs e)
{
string id = HFEPID.Value;//获取选中的ID值
string str = "window.parent.ReBindPaper('" + id + "');";//调用父页面绑定方法
ScriptManager.RegisterStartupScript(this.Page, Type.GetType("System.String"), str, str, true);
}
另外,还可以利用AjaxPro控件从客户端调用服务端的函数,详情参见:
http://www.cnblogs.com/shawker/archive/2011/01/13/1934560.html