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

 
posted @ 2011-01-13 13:58  潇客的技术博客  阅读(3736)  评论(2编辑  收藏  举报