html 子窗体调用父窗体的方法

hug1989 2010-08-19 05:34:29
如题! 是一个传值问题!
A.aspx 中的某个按钮点击之后弹出了 C.aspx .....C计算完成之后将结果返回给A的文本框接收,于是问题就来了,A接收了C传回来的值的时候要对面页做出反应,那就是保存A页面中表单的信息!
现在问题是,我有什么方法让C页面给A页面传回值之后再使A页面信息保存,然后将自身页面关闭,完成计算!
...全文
261 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hug1989 2010-08-20
  • 打赏
  • 举报
回复
不可以用MultiView呀,一定要在两个页里完成! 不过还好!刚刚解决了. -_-!!!
pavee 2010-08-20
  • 打赏
  • 举报
回复
晕!为什么搞得这么复杂?
既然是ASP.NET 项目,为什么不用微软提供的、现成的方法或手段呢?解决楼主的问题,最应该想到的是使用MultiView。表面上看起来是页面切换来切换去,其实就一个页面。即便是你的页面复杂,有好多web controls,大不了定义几个UserControls,然后嵌入到不同的View就是了,然后为Button的CommandName属性使用预定义的名字,比方说:PrevView, NextView 或者SwitchViewByIndex,再借助ViewState或Session, 问题不就更容易解决吗?
hug1989 2010-08-20
  • 打赏
  • 举报
回复
我试一下你的方法!
symbol_bc 2010-08-19
  • 打赏
  • 举报
回复
我要回家了,明天再说吧。88
symbol_bc 2010-08-19
  • 打赏
  • 举报
回复
传参是一个对象,对象的话就这样:

//a.aspx
//设计一个要传递的对象,把你的参数装到json结构中,想传多少都行
var paramObj = {
ID : 11,
Name : "symbol",
IsOk : true;
List : []
};
var returnObj = window.showModalDialog("c.aspx",paramObj ,"dialogWidth=360px;dialogHeight=460px;center:yes; help:no; resizable:no; status:no");
obj.value = returnObj;




//c.aspx

var obj = window.dialogArguments;//把结构取出来,操作他们
obj.ID = 111;
obj.Name = "";
obj.IsOk = false;
obj.List = [];
//怎样??
symbol_bc 2010-08-19
  • 打赏
  • 举报
回复
呵呵,因为你需求里提到的c.aspx关闭,向a.aspx传值的功能。这最好用window.showModalDialog,因为就是主页面和子页面的关系。

参数完全不用担心,哈哈,要传多少多可以。
hug1989 2010-08-19
  • 打赏
  • 举报
回复
惨啦,我不能用你给的这两种方法!因为那个要传的值太多了,有没有在window.open解决的方法,比如在子窗体里调用主窗体的一个方法之类的!我放一个按钮,只要子页可以摸拟按到那个按钮就会保存,这里的保存是要进后台将数据保存到数据库里,所以只能用摸拟按按钮的方法了!
function relo()
{
document.getElementById("SaveDate").click;
}
有没有办法调到这个方法啊!
symbol_bc 2010-08-19
  • 打赏
  • 举报
回复
a.aspx

<input id="res" /><input type="button" onclick="f();" value=" call f" />



//这里有两种做法,一种是让c.aspx计算返回值,在a.aspx页
var f = function(){
var obj = document.getElementById("res");
//方法一:把input对象作为参数传到c.aspx页面上,在c.aspx页操作它
window.showModalDialog("c.aspx",obj,"dialogWidth=360px;dialogHeight=460px;center:yes; help:no; resizable:no; status:no");
//方法二:不传obj,取c.aspx页面的返回值
var returnObj = window.showModalDialog("c.aspx",null,"dialogWidth=360px;dialogHeight=460px;center:yes; help:no; resizable:no; status:no");
obj.value = returnObj;


//a页面信息保存


}


c.aspx

//第一种方法:
var obj = window.dialogArguments;//取到inputObj
obj.value = 11111111;//给他赋值

//第二种方法:
window.returnValue = 1111111111;//通过返回值
window.close();
hug1989 2010-08-19
  • 打赏
  • 举报
回复
嗯!好的!
symbol_bc 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hug1989 的回复:]
哈,又是你! 今天真是出门遇贵人啊!
window.shoModalDialog这个方法不是很熟悉啊! 能不能给个小例子!
或代码之类的啊!
[/Quote]

哦,是你啊,我刚才看到原来那个帖子,还给你留了言。
好,我写个小例子,等一下。
hug1989 2010-08-19
  • 打赏
  • 举报
回复
[walkghost]
刚刚看过你给的例子...不过我要的可不是这个哦!
hug1989 2010-08-19
  • 打赏
  • 举报
回复
哈,又是你! 今天真是出门遇贵人啊!
window.shoModalDialog这个方法不是很熟悉啊! 能不能给个小例子!
或代码之类的啊!
symbol_bc 2010-08-19
  • 打赏
  • 举报
回复
使用window.showModalDialog就能很好的达到的你的所有要求。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧