CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

关闭子窗体,父窗体的数据自动刷新

楼主vividboy(参数1,参数2..)2006-03-08 15:59:38 在 .NET技术 / ASP.NET 提问

父窗体中用DataGrid显示数据库中的数据。点击了页面上的按钮以后。  
  弹出一个新的窗体。在新的窗体中对数据进行修改操作,然后点击“关闭”按钮(服务器控件)  
  这个时候,我需要父窗体的DataGrid中的数据已经刷新显示最新的数据了。  
   
  不知道这个问题怎么解决。高手赐教,谢谢。 问题点数:20、回复次数:14Top

1 楼binny0532(苏打水)回复于 2006-03-08 16:14:04 得分 2

在后台也是可以写JS的  
  可以用js来刷新  
  window.opener.location.reload();Top

2 楼vividboy(参数1,参数2..)回复于 2006-03-08 16:17:50 得分 0

谢谢,binny0532(苏打水)  
  需要前面先用   window.opener.location.href   =   "父窗体地址"   吗?Top

3 楼netpot(netpot)回复于 2006-03-08 16:24:15 得分 2

楼主应该问的是winform中吧?  
  把datagrid的数据源(dataset或者datatable)做为参数传给子窗体就ok  
  形如   frmChild   frm   =   new   frmChile(dataTable);  
  当子窗体关闭时候,父窗体会自动更新  
  如果是自定义实体类,则需要实现   IBindingList   and   IEditableObject   interfaces,    
  see   Windows   Forms   Data   Binding   and   Objects  
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadvnet/html/vbnet02252003.aspTop

4 楼seabluecn()回复于 2006-03-08 16:28:55 得分 1

window.opener.location.reload();这一句就够了Top

5 楼PerfectStar(第一个获得图灵奖的中国籍男子)回复于 2006-03-08 16:29:43 得分 2

function   GuanBiHeShuaXin()  
  {  
  window.opener.location.href=window.opener.location.href;  
  self.close();  
  }Top

6 楼vividboy(参数1,参数2..)回复于 2006-03-08 16:42:41 得分 0

谢谢各位  
    netpot(netpot),我的是ASP.NET。  
   
    seabluecn()   ,确实可以实现刷新功能,不过相当于点击了浏览器的“刷新”按钮,所以  
  会弹出提示。  
   
    PerfectStar,   "window.opener.loaction.href   =   window.opener.location.href"具体指什么意思?  
  Top

7 楼amnoh(会走路的鱼)回复于 2006-03-08 17:22:30 得分 4

如果用户已经点过某些按钮,用"location.reload()"就会出现提示,这是不可避免的,所以,特别是在webform中,最好不要用reload;  
  可以用window.opener.loaction.href   =   window.opener.location.href   来刷新,  
  简单的说,location.href就是地址,"window.opener.loaction.href   =   window.opener.location.href"就是设置父窗口的地址为父窗口当前的地址,这个操作会导致页面刷新,但也有问题,此时服务器会执行page_load中  
  if(!Page.IsPostBack)  
  {  
  ...  
  }  
  中的代码,有时这和我们想要的情况不一样.  
  最好是在父窗口页面中弄一个更新用的function,放一个hiddenInput,  
  要更新时,调用该function,设置标识值,然后采用"Form1.submit()"的方式来刷新页面,  
  服务器中在page_load里判断该hiddenInput的值,按情况进行处理.  
  这种方法最麻烦,不过比较保险  
  Top

8 楼vividboy(参数1,参数2..)回复于 2006-03-08 19:47:40 得分 0

amnoh(会走路的鱼),   对你想法很感兴趣。  
  但我对你的方法的实现还不是很理解。  
  请明示。  
   
  比如:  
  1   具体在什么地方,怎样调用更新   hiddenInput   的function  
  2   Form1.submit()   是怎样一个方法。  
   
  谢谢Top

9 楼canghai827716(滄海)回复于 2006-03-08 20:05:38 得分 1

Response.Write("<script   language='javascript'>  
  window.opener.location.Reload();window.close();</script>");Top

10 楼flysky913()回复于 2006-03-08 20:39:22 得分 2

你弹出的新窗体是用什么弹出的呢?如果是用window.showModalDialog()的话,你可以在window.showModalDialog()之后加上document.forms[0].submit()这一句就可以了,子窗体的代码不要做任何改动;Top

11 楼vividboy(参数1,参数2..)回复于 2006-03-09 08:36:30 得分 0

To   flysky913  
   
  我是用window.open(URL)来打开新的窗口的。Top

12 楼iuhxq(小灰)回复于 2006-03-09 08:40:01 得分 2

如果你用了自动分页,那window.opener.location.reload();刷新会弹出窗口  
   
  所以最好还是自己分页,保证你的列表是GET方式访问的,这样window.opener.location.reload();就是对的了Top

13 楼amnoh(会走路的鱼)回复于 2006-03-09 13:01:08 得分 0

1   具体在什么地方,怎样调用更新   hiddenInput   的function  
  2   Form1.submit()   是怎样一个方法。  
  =====================================================  
   
  在父窗口放一个hidden   Input,写一个JS     function,比如叫个refresh,  
  那么就在关闭子窗体的时候,在子窗体中通过  
  window.opener.refresh();  
  调用,在父窗口的refresh中,先将那个hidden   Input的值设置好,  
  然后提交表单,那个Form1.submit()就是提交表单了,当然,你的页面中那个服务器端Form不见得叫Form1,但道理是一样的Top

14 楼jimu8130(火箭的未来在哪里?)回复于 2006-03-09 13:33:15 得分 4

你干脆在父页面挂个按钮(width   =0),然后这个按钮的事件代码则是重新查询数据库得到数据和datagrid绑定  
  看我的  
  function   Goto(strUrl){  
        str=window.showModalDialog(strUrl,'','dialogheight   :260px;   dialogwidth   :324px;   edge:   Raised;   center:   Yes;   help:   No;   resizable:   No;   status:   No;   scroll:No;');  
        //alert(str)  
        if(str   =='0')  
        {  
            //   alert('操作失败');  
              return   false;  
        }  
        else   if(str=='1')  
        {  
            //   alert('操作成功');  
          //     document.all.btnRef.focus();  
              //alert('focus');  
              document.all.btnRef.click();  
              //alert('click');  
              return   false;  
        }  
  }Top

相关问题

  • 怎么在关闭子窗体的时候同时刷新父窗体????
  • 当关闭一个web窗体后怎么使另一个窗体刷新!
  • 一个窗体关闭后使另一个窗体刷新是怎么做的?
  • 高手帮忙:如何把子窗体的数据传给父窗体并刷新父窗体?
  • 用window.open打开一个ie窗体,在此窗体关闭后,怎么刷新主窗体?
  • 刷新父窗体 ?
  • 关闭窗体
  • 关闭窗体
  • 请问怎么写刷新数据窗体功能?在线等待
  • 请教:我在窗体上放置数据控件,建立数据连接,当关闭窗体时

关键词

  • 数据
  • 页面
  • 服务器
  • 代码
  • js
  • 窗体
  • 刷新
  • hiddeninput
  • loaction
  • 按钮

得分解答快速导航

  • 帖主:vividboy
  • binny0532
  • netpot
  • seabluecn
  • PerfectStar
  • amnoh
  • canghai827716
  • flysky913
  • iuhxq
  • jimu8130

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo