我在子窗口上使用此脚本在单击“关闭并刷新”时刷新父窗口:
<script type="text/javascript">
function RefreshParent() {
if (window.opener != null && !window.opener.closed) {
window.opener.location.href = window.opener.location;
}
}
</script>
但是,当刷新父窗口时,保存在ViewState
中的ID将丢失,我无法再绑定我的控件。
有关解决方法的任何建议吗?
编辑:
回答其中一条评论:我无法使用Sessions,因为我需要清除“卸载事件”上的会话,但是我发现在回发时调用了Unload事件(如果我是的话请纠正我错了)并且仍然会失去价值。
答案 0 :(得分:1)
viewstate的工作方式基本上是将数据保存到html页面。因此,当您刷新页面时,页面加载将重新创建页面,就像第一次访问页面一样。您是否尝试在关闭子页面后将查询字符串添加到父页面,然后根据查询字符串绑定控件?
注意:如果您有不想存储在查询字符串中的敏感数据,则可以加密该值并将其放入查询字符串中。然后在读取解密它。查询字符串的一个重大缺点是url现在可以缓存。
示例:www.yoursite.com/parentpage?childpageid = 1 然后在你的pageload或wherver中绑定控件,你只需检查url中是否有查询字符串。
示例代码:
<script type="text/javascript">
function RefreshParent() {
if (window.opener != null && !window.opener.closed) {
window.opener.location.href = window.opener.location + "?childid=1";
}
}
</script>