Asp c# 如何在子页面中调用父页面中的方法或执行父页面中某个按键(Button)中的代码

问题描述

各位高手,有个问题求助,我搞了一天,也从网上查询了许久,找不到办法,请帮帮我。事由:我使用vs2010c#,ie8建网站,现有父页面A和子页面B。A页面(父页面):在A页面(A.aspx)有一个GridView网格Gridview_A,Gridview_A通过A页面上的按键Button_A_Click将表Table_A(Table_A放在Session["Table_A"]中)绑定,A页面(A.aspx)还有一个调用子页面B(B.aspx)的按键Button_AcallB_Click,内置代码为:ScriptManager.RegisterStartupScript(this.Page,this.GetType(),"click","varleft=Math.round((window.screen.width-880)/2);vartop=Math.round((window.screen.height-600)/2);window.open('B.aspx','Notes','height=600,width=880,top='+top+',left='+left+',scrollbars=yes,toolbar=no,menubar=no,resizable=no,location=no,status=no');",true);用于打开子页面B(B.aspx)。在A页面的后台(A.aspx.cs)中,有一个方法:publicvoidmethod_A(){//从Session["Table_A"]取出保存的人员表Table_A,绑定及刷新A页面上的网格Gridview_A//其代码与按键Button_A_Click(将表Table_A(Table_A放在Session["Table_A"]中)绑定)完全相同}B页面(子页面):B页面有一个按键Button_B_Click,其代码功能是从sql数据库查询数据后放入Session["Table_A"]中,然后从Session["Table_A"]取出表Table_A绑定到父页面A的Gridview_A上,然后关闭子页面B重新回到主页面A上。需要实现:在子页面B上不能直接绑定数据到主页A上的Gridview_A中,那么只能调用主页A页面上的方法method_A(),或者执行主页A中的按键Button_A_Click中的代码来实现。问题:我用js或c#代码都不能实现,敬请大家指教。最好有完整的前台后台,父页子页代码。我刚转入aspc#,希望指点,给分50,谢谢!

解决方案

解决方案二:
求求大家,给我想个办法吧
解决方案三:
method_A()单独写在一个类里面不行吗?如果需要参数则传递进去返回去值。然后A,B页面都就可以用了。
解决方案四:
如果将method_A()单独写一个类,则不能绑定和刷新页面父A(aaspx)中的网格Gridview_A
解决方案五:
我现在不需要传递参数返回值,我的目的是需要在子页面B中取出表Table_A(放在Session["Table_A"]中),然后将该表绑定在父页面A上的网格Gridview_A中,刷新后关闭B页面返回到A页面上
解决方案六:
在A添加一个Button(用样式设置为隐藏),绑定事件,重新绑定GVB可以用js触发jQuery(window.opener).find("#RButton").click();
解决方案七:
jQuery(window.opener).find("#RButton").click();提示“缺少对象”
解决方案八:
我已在A添加一个Button(用样式设置为隐藏),绑定事件,重新绑定GV
解决方案九:
我自己搞出来了:方法:通过js互调具体:父页面建两个js函数:functioncallMethod()//调用方法,用于绑定table到GV(Gridview_A){vars="<%=GridView_jion_DataBounding()%>";alert(s);}functionrefreshpage()//调用按键click,用于刷新页面(不需要代码),{//varobj=document.getElementById('<%=Buttonsx%>')//document.getElementById("Button_sx");varobj=document.getElementById('MainContent_Buttonsx')//通过js调试中查出Buttonsx的实际id,通过<%=Buttonsx%>不能查出obj.click();}子页面1、建一个js函数,调用父页面JS函数functioncallFatherjs()//调用父页面js{window.opener.callMethod();//调用父页面方法window.opener.refreshpage();//调用父页面按键click,用于刷新父页面}2、在保存完table到Session:Session["Vs_dt_jion"]=dt_jion;//保存人员,用于绑定父页面的gridview_jion加一句:ClientScript.RegisterStartupScript(ClientScript.GetType(),"myscript","<script>callFatherjs();</script>");//调用子页面js//以上这句通过本页面js调用父页面js,从而调用父页面的js,父页面的js在调用父页面的方法(绑定数据)和按键click(用于刷新页面,从而显示数据在父页面的GV中)ok
解决方案十:
MARK。。。。。。。。。。。。
解决方案十一:
当然你可以使用C#程序来实现:其实B.aspx.cs就可以执行A.aspx.cs的方法,或者反之。参考:
解决方案十二:
引用8楼hxg391145的回复:

我自己搞出来了:

asp.net页面一瞬间就结束生命期了,所以在asp.net端根本不存在所谓“两个页面交互”的说法。只有浏览器端才存在opener机制。如果先把机制搞对了,其实非常简单。

时间: 2024-09-20 20:11:59

Asp c# 如何在子页面中调用父页面中的方法或执行父页面中某个按键(Button)中的代码的相关文章

js+php实现静态页面实时调用用户登陆状态的方法

 这篇文章主要介绍了js+php实现静态页面实时调用用户登陆状态的方法,采用在静态页面中使用js调用php页面从而实现用户登录状态的实时调用功能,需要的朋友可以参考下     本文实例讲述了js+php实现静态页面实时调用用户登陆状态的方法.分享给大家供大家参考.具体分析如下: 在程序开发中,经常会把页面做成html的静态形式,这样可以减轻服务器负载,但是也存在一个问题就是当注册用户登陆时,要在html页面显示登陆成功或需要登陆的提示,这样我们就必须想其它办法来实现了,下面我们就是利用js+ph

linux下Shell中调用/引用/包含脚本文件方法

脚本 first (测试示例1)  代码如下 复制代码 #!/bin/bash echo 'your are in first file'   问)在当前脚本文件中调用另外一个脚本文件? 方法一: 使用 source 脚本 second (测试示例2)  代码如下 复制代码 #!/bin/bash echo 'your are in second file' source first   方法二: 使用 .  代码如下 复制代码 脚本 second (测试示例3) #!/bin/bash ech

在html中调用js文件(无路径错误和书写错误),但js中的函数无法执行

问题描述 在html中调用js文件(无路径错误和书写错误),但js中的函数无法执行 我在html中调用js文件 这个文件中有5个函数,其中有一个函数已经可以用了,但是这个文件中的另外两个函数在调用的时候却没有反映,具体代码如下html代码 <form name=""form_dx"" action=""#"" method=""post"" onSubmit=""

俄罗斯方块-Java frame中调用了setContentPane(new Panel());方法,但不显示Panel

问题描述 Java frame中调用了setContentPane(new Panel());方法,但不显示Panel 代码如下:PanelGame类: package ui; import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JPanel; public class PanelGame extends JPanel{ //创建一个对象数组,存储各个边

c++ 构造函数中调用虚函数的实现方法_C 语言

我们知道:C++中的多态使得可以根据对象的真实类型(动态类型)调用不同的虚函数.这种调用都是对象已经构建完成的情况.那如果在构造函数中调用虚函数,会怎么样呢? 有这么一段代码: class A { public: A ():m_iVal(0){test();} virtual void func() { std::cout<<m_iVal<<' ';} void test(){func();} public: int m_iVal; }; class B : public A {

asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结

通常javascript代码可以与HTML标签一起直接放在前 端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿:所以一般有良好开发习惯的程序员都会把 javascript代码放到独立的js文件中,其他页面通过引入该js文件来使用相应的 javascript代码.用如下方法引用JS文件:<script src="script/admin.js" type="text/javascript"></scr

XHTML中调用CSS样式表的方法

用web标准设计网站,过渡的方法主要是采用XHTML+CSS,css样式表是必不可少的.这就要求所有网页设计师必须熟练掌握CSS,如果你以前不常用,那么现在就开始学习吧.要制作符合web标准的网站,不懂CSS是设计不出漂亮的页面的. 事实上,所有表现的地方都需要用CSS来实现.我们以前都习惯用table来定位和布局,现在要改用DIV来定位和布局.这是思维方式的变化,一开始有些不习惯.呵呵,任何变革都会有阻力的,为了享受标准带来的"益处",放弃一些老的传统做法是值得的. 外部调用样式表

a 标签中调用js的几种方法

 我们常用的在a标签中有点击事件: 1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放.W3C标准不推荐在href里面执行javascript语句 2. a href="javascript:void(0);&quo

WEB如何在.html文件中调用C# App_code 里的方法或者.aspx文件并得到返回值?急!

问题描述 因为访问量大,页面采用生成的.html页,但.html页无法查询数据库,取得类似会员登录等等的动态信息,但.html页当中有多处要用到登录信息,请问如何才能在.html页中调用到C#的后台代码或者调用.aspx文件查询然后得到返回值?登录信息并非只是为了显示,如果是这样只要用一个iframe就可以了,通过cookie又不太方便,很多客户端对cookie支持不好,请大侠给个好点的方法,能直接调用.cs文件里的方法最好! 解决方案 解决方案二:通过js调用webservice返回数据进行操