空地

生活,工作,记录(内容基本都是转载,自己工作用到的时候看看而已)

导航

C#中在类中如何定义一个方法,使之可以关闭当前窗口并刷新父窗体

我们在asp.net开发的时候,经常遇到这样的情况,从webform1打开webform2编辑一些数据,然后,关闭webform2之后,返回webform1并且webform1自动刷新,在winform中这个不难实现,但是在web中就有一些问题了,首先是在一个类中定义这个方法,因为在一个类中,我们没有page对象,那么就不能用Response.write()的方式输出javascript。而在web中,大部分的效果处理,还是需要javascript来实现。对于这个问题的解决方法就是,我们在定义方法的时候,使之接受一个System.Web.UI.Page 类型的对象,在调用的时候,传递调用的页面就可以了。第二个问题是刷新父窗体,我们知道,如果用refurbish()方法,,则会弹出一个确认对话框的,找了很多方法,后来发现用location.href重新指定就不会弹出确认框了。废话了这么多,代码如下:

  //********************************************************************
  //名称:RedirectParentWind
  //依赖关系:System.Web.UI.Page
  //目的:刷新父页面并且关闭当前页面
  //作者:Coolbo
  //参数:page
  //最后编辑人:Coolbo
  //最后编辑时间:2004-10-3
  //注释:调用时传递参数:this.Page
  //*********************************************************************
  public void RedirectParentWind(Page page)
  {
   page.Response.Write("<script language='javascript'>");
   page.Response.Write("window.opener.location.href=window.opener.location.href;");//刷新父页面
   page.Response.Write("window.close();");
   page.Response.Write("</script>");
  }

调用的时候:RedirectParentWind(this);

posted on 2006-12-14 11:24  小梅  阅读(1418)  评论(0)    收藏  举报