弹出窗口刷新它的父页面后。出现不重新发送信息,则无法刷新网页 2005-09-29 13:49 黄玮璘

很简单的解决方法
在.NET里头
默认有POSTBACK的控件存在
当页面回传的时候
后台会根据postback的内容进行操作
这样
我们可以从IE浏览器中调看这个回传代码
是一个叫__dopostback(..,..)的方法
<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
theform = document.Form1;
}
else {
theform = document.forms["Form1"];
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>的脚本
所以从父窗体打开新窗体的时候
新窗体都会返回一个值
叫做window.returnValue
利用这样的特性
我是这么解决的:
1)修改窗体更改与刷新的注意点:
1.父窗体一定要
有三处修改:
第一:页面加载时候的脚本写入
PCMS.cla.page.sc.page_postback_register(this.Page);
第二:postback的判断

else
{
//PCMS.cla.page.sc.page_c_win_openPageclose_returnvalue("pleasefresh");
if(Request.Form["__eventargument"]!=null)
{
if(Request.Form["__eventargument"].ToString()=="pleasefresh")
{
this.databind(true);
}
}
}
第三:打开页面的调用(调整窗体大小)
PCMS.cla.page.sc.page_f_win_opendialog_returnvalue(this.Page,"l02_dialog_Check_Car_M.aspx?intemp="+e.Item.Cells[0].Text,800,750);
2.子窗体一定在关闭的时候:
PCMS.cla.page.sc.page_c_win_openPageclose_returnvalue(this.Page,"pleasefresh");
3.在类库中进行的代码书写:
/// <summary>
/// 页面执行页面刷新的返回服务器端传送信号的JAVASCRIPT函数
/// </summary>
/// <param name="page">镶嵌javascript代码的页面名</param>
/// <returns></returns>
public static void page_postback_register(System.Web.UI.Page page)
{
string javascriptpostback="<script language=\"javascript\" type=\"text/javascript\">"+
"function ___doPostBack(eventTarget, eventArgument) "+
"{"+
"var theform;"+
"if (window.navigator.appName.toLowerCase().indexOf(\"microsoft\") > -1) "+
"{"+
"theform = document.Form1;"+
"}"+
"else "+
"{"+
"theform = document.forms[\"Form1\"];"+
"}"+
"theform.__EVENTTARGET.value = eventTarget.split(\"$\").join(\":\");"+
"theform.__EVENTARGUMENT.value = eventArgument;"+
"theform.submit();"+
"}"+
"</script>";
page.RegisterClientScriptBlock("PostbackServer",javascriptpostback);
}
/// <summary>
/// 和___PostBack一起同时使用,用在一个页面上
/// 父亲窗体通过Request.From["__eventargument"].ToString()获取子窗体关闭时候提供的ReturnValue值
/// </summary>
/// <param name="page">要执行的页面对象</param>
/// <param name="URL">要打开的页面地址</param>
/// <param name="width">宽</param>
/// <param name="height">高</param>
public static void page_f_win_opendialog_returnvalue(System.Web.UI.Page page,string URL,int width,int height)
{
//Response.Write(System.Web.HttpUtility.HtmlEncode("你 %^&*% 好"));
string js2="<script language=\"JavaScript\">";
js2+=string.Format("res=window.showModalDialog(\"{0}\",window,\"status:false;dialogWidth:{1}px;dialogHeight:{2}px\");___doPostBack('Form1',res);",URL,width.ToString(),height.ToString());
js2+="</script>";
page.RegisterClientScriptBlock("can",js2);
}
/// <summary>
/// 窗体关闭返回给父窗体事件,父亲窗体通过Request.From["__eventargument"].ToString()获取ReturnValue值
/// </summary>
/// <param name="page">子窗体页面对象</param>
/// <param name="ReturnValue">返回给父窗体的值</param>
public static void page_c_win_openPageclose_returnvalue(System.Web.UI.Page page,string ReturnValue)
{
page.RegisterStartupScript("return",string.Format("<script>window.returnValue=\""+ReturnValue+"\";window.close();</script>"));
}
这样就很容易解决了

回复  更多评论

#re: 弹出窗口刷新它的父页面后。出现不重新发送信息,则无法刷新网页 2005-09-29 13:54 黄玮璘

上面有地方省略了些代码
这些代码页面加载时的判断:
if(this.Page.IsPostBack==false)
{
//第一次加载页面的时候在这里运行代码
}
else
{
//不是第一次登录页面时候在这里运行代码
//通过判断postback的参数进行代码调整
if(Request.Form["__eventargument"]!=null)
{
if(Request.Form["__eventargument"].ToString()=="pleasefresh")
{
//重新调整数据的函数调用,自己定义
this.databind(true);
}
}  回复  更多评论

#re: 弹出窗口刷新它的父页面后。出现不重新发送信息,则无法刷新网页 2005-09-29 14:00 黄玮璘

我这里有一个涉及真正要刷新的问题
同一个页面下面
我有一个image控件
当我按下一个按钮的时候
我要随机指定一张jpg图片然后压缩成gif文件
这个gif文件叫b.gif
我要这个image控件在每次按钮事件结束后绑定一个叫b.gif的图片
显示即时的图片
但是IE的缓存使得任何的加载方式都不能显示更新后的b.gif
除非IE浏览器关闭否则无法看到更新后的b.gif文件
请问诸位有没有高招帮我这个忙?

转载于:https://www.cnblogs.com/huangweilin/archive/2007/04/27/730355.html

从子窗体传递数据给父窗体相关推荐

  1. 父组件访问子组件中的数据(父子组件通信案例:父组件访问子组件$refs[‘子组件‘],子组件传递数据给父组件(父组件中使用v-model))

    一.需求 二.在父组件upload-cover中: 通过$refs['子组件的ref属性值']就能拿到子组件对象 三.在子组件imgae-list(相对于父组件upload-cover来说,image ...

  2. reactjs组件通讯:子组件传递数据给父组件

  3. 简单实现 子窗体关闭后 刷新父窗体的DataGridView控件数据

    简单实现 子窗体关闭后 刷新父窗体的DataGridView控件数据 首先创建两个窗体,一个父窗体Form1 一个子窗体Form2 在show 子窗体时 设置 Form2 form2=new Form ...

  4. vue子组件获取父组件数据_在vue.js中父组件是如何向子组件传递数据的?

    本文只有一个学习点. 父组件如何向子组件传递数据. 一起学习,更多文章请关注我的头条号,我是落笔承冰. 一.先创建一张空白网页index.html,在head标签里设置好vue的链接库. 二.写一个绑 ...

  5. vue 父向子组件传递数据,子组件向父组件传递数据方式

    父组件向子组件传递数据通过props,子组件引入到父组件中,设置一个值等于父组件的数据,通过:bind将数据传到子组件中,子组件中通过props接收父组件的数据,这样就可以使用父组件的数据了,循环组件 ...

  6. 组件通信-父组件为子组件传递数据-静态数据//动态数据 // 数据校验

    组件通信-父组件为子组件传递数据-静态数据 <!DOCTYPE html> <html lang="en"><head><meta cha ...

  7. vue请求数据传给子组件_vue.js基础,父组件如何向子组件传递数据「607」

    本文只有一个学习点. 父组件如何向子组件传递数据. 一起学习,更多文章请关注我的头条号,我是落笔承冰. 一.先创建一张空白网页index.html,在head标签里设置好vue的链接库. 二.写一个绑 ...

  8. 父组件向子组件传递数据

    既然存在父子关系,所以,肯定是在父组件中调用了子组件. 而父组件向子组件传递的数据,可以通过在子组件上定义属性,将数据传递给自定义属性的值的方式,来实现父组件向子组件传递数据. 其实,父组件引用子组件 ...

  9. C#子窗体精确定位到父窗体的某个位…

    弹出的子窗体精确定位在父窗体的某个位置,需要有目标坐标(这里将子窗体的位置设置为父窗体中一个panel的位置,需要将panel的坐标转换成屏幕坐标) lvlv_CauseForm cf = new l ...

最新文章

  1. 我要放弃RedHat Linux了
  2. 请你简要说明一下线程的基本状态以及状态之间的关系?
  3. java 单例 缓存hashmap_java 、HashMap 和单例
  4. 残差网络(ResNet)
  5. 论文浅尝 | GNN with Generated Parameters for Relation Extraction
  6. 【软件测试】黑盒测试の等价类划分法
  7. php双线切换线路,双线路策略路由和脚本备份切换
  8. 高级政工师具备的能力_广东省固体废弃物利用处置能力评价资质申报指南
  9. 书店管理系统(C++初学者友好版)
  10. eclipse导入wsdl文件_eclipse生成wsdl文件
  11. QQ信任登陆注册开发者帐号
  12. 19.数学与经济管理
  13. 配置Eureka-client报EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT...
  14. SQL增删改查知识点总结
  15. mysql embeded 用法_Embedded Mysql | 学步园
  16. Touch ID回归,为用户对苹果最期待功能
  17. mezzanine-一个功能强大且易于扩展性的Django框架构建的内容管理平台
  18. you和帆船(枚举)
  19. 一款比XMIND更好用的思维导图
  20. 1737 - 满足三条件之一需改变的最少字符数 - 枚举 - 贪心

热门文章

  1. 取出响应头中包含多个set-cookie的值
  2. springboot中分页插件pageHelper的使用
  3. 解决OutOfMemoryError: unable to create new native thread问题
  4. Maven plugins和pluginManagement的区别概述
  5. Spark MLlib学习笔记之二——Spark Mllib矩阵向量
  6. Java Hotspot G1 GC的一些关键技术
  7. Postman接口调试神器
  8. MySql 扩展存储引擎
  9. RxJS Functional Programming
  10. Django 电脑使用管理