父窗体中用DataGrid显示数据库中的数据。点击了页面上的按钮以后。
弹出一个新的窗体。在新的窗体中对数据进行修改操作,然后点击“关闭”按钮(服务器控件)
这个时候,我需要父窗体的DataGrid中的数据已经刷新显示最新的数据了。不知道这个问题怎么解决。高手赐教,谢谢。
弹出一个新的窗体。在新的窗体中对数据进行修改操作,然后点击“关闭”按钮(服务器控件)
这个时候,我需要父窗体的DataGrid中的数据已经刷新显示最新的数据了。不知道这个问题怎么解决。高手赐教,谢谢。
可以用js来刷新
window.opener.location.reload();
需要前面先用 window.opener.location.href = "父窗体地址" 吗?
把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.asp
{
window.opener.location.href=window.opener.location.href;
self.close();
}
netpot(netpot),我的是ASP.NET。 seabluecn() ,确实可以实现刷新功能,不过相当于点击了浏览器的“刷新”按钮,所以
会弹出提示。 PerfectStar, "window.opener.loaction.href = window.opener.location.href"具体指什么意思?
可以用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的值,按情况进行处理.
这种方法最麻烦,不过比较保险
但我对你的方法的实现还不是很理解。
请明示。比如:
1 具体在什么地方,怎样调用更新 hiddenInput 的function
2 Form1.submit() 是怎样一个方法。谢谢
window.opener.location.Reload();window.close();</script>");
2 Form1.submit() 是怎样一个方法。
=====================================================在父窗口放一个hidden Input,写一个JS function,比如叫个refresh,
那么就在关闭子窗体的时候,在子窗体中通过
window.opener.refresh();
调用,在父窗口的refresh中,先将那个hidden Input的值设置好,
然后提交表单,那个Form1.submit()就是提交表单了,当然,你的页面中那个服务器端Form不见得叫Form1,但道理是一样的
看我的
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;
}
}