现在遇到的问题是,请问在.NET中 怎样在子页面B调用父页面A 后台代码(.cs)里的方法??
我想做的效果是:点击子页面B的一个按钮,调用父页面A的一个方法,弹出一个自定义提示窗口。
例如:
A页面后台类声明为:public partial class Student: System.Web.UI.
B页面后台类声明为:public partial class Teacher: System.Web.UI.
______该怎样在B页面调用A页面的方法,请大家帮忙一下,谢谢!
19 个解决方案
#1
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
#2
在b中
parent.document.getElementById("button1").click();
parent.document.getElementById("button1").click();
#3
parent.window.document.getElementById("button1").click();
#4
楼上的兄弟,这个是访问其他页面的单击事件吧,我是想访问A类的特定的公有方法哦。
#5
parent.document.getElementById('<%=btn.ClientID %>').click();
#6
楼上几个兄弟,你们貌似误解我的意思,我是想在ASP.NET中,在B页面的后台类中,调用A页面后台类中的公有方法,你说的那些是JS调用吧。
#7
调用A页面方法
否则使用ajax
否则使用ajax
#8
楼上几个兄弟,你们貌似误解我的意思,我是想在ASP.NET中,在B页面的后台类中,调用A页面后台类中的公有方法,你说的那些是JS调用吧。
==>
click后就可以调用A 的后台方法.
在B的后台调用A的后台,如果是与上下文无关是可以的,如果有关则不行.
无关:
new A().public方法();
==>
click后就可以调用A 的后台方法.
在B的后台调用A的后台,如果是与上下文无关是可以的,如果有关则不行.
无关:
new A().public方法();
#9
请问怎样才与上下文无关呢?
我在B页面后台类中 new 一个 A页面后台类的实例,但编译时候提示找不到该类型或命名空间。
#10
无关是指,你使用这个方法的时候,与你客户A页面请求的数据没有任何关系,否则就有问题.
另:你的类名写得不对.
另:你的类名写得不对.
#11
类名不对?
我是添加新项后自动生成的后台类
public partial class Student: System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e)
{
}
}
我是添加新项后自动生成的后台类
public partial class Student: System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e)
{
}
}
#12
对了,我还试过在A页面和B页面加上同样的命名空间,然后在B页面导入命名空间,然后用“命名空间名字.类名.公共方法()”这格式调用,编译出错,提示在命名空间下找不到指定类别。
#13
new 命名空间名字.类名().公共方法();
如果同一空间,省略命名空间名字
如果同一空间,省略命名空间名字
#14
哎,还是不行,原来不同页面后台类调用这么困难的,A页面和B页面分别处于不用文件夹下,是不是这个原因影响的?
刚才试了命名空间,还是提示:
“找不到类型或命名空间名称“adminobj”(是否缺少 using 指令或程序集引用?) ”
刚才试了命名空间,还是提示:
“找不到类型或命名空间名称“adminobj”(是否缺少 using 指令或程序集引用?) ”
#15
看来我这问题还是不能解决,郁闷呀。!
#16
何必呢?
为什么一定要调用B页面的后台公用方法?你可以将B页面的公用方法,写在某个类里面,然后B页面可以调用此类里面,A页面也可调用此类,问题不就结了?
比如:
public class abc
{
public static void 需要复用的方法()
{}
}
B页面某方法:
privaet void xx()
{
//调用abc类的方法
abc.需要复用的方法();
}
A页面也可调相同方法
privaet void axx()
{
//调用abc类的方法
abc.需要复用的方法();
}
或者有特殊要求?如果是,你可通过反射的手段来进行调用.
为什么一定要调用B页面的后台公用方法?你可以将B页面的公用方法,写在某个类里面,然后B页面可以调用此类里面,A页面也可调用此类,问题不就结了?
比如:
public class abc
{
public static void 需要复用的方法()
{}
}
B页面某方法:
privaet void xx()
{
//调用abc类的方法
abc.需要复用的方法();
}
A页面也可调相同方法
privaet void axx()
{
//调用abc类的方法
abc.需要复用的方法();
}
或者有特殊要求?如果是,你可通过反射的手段来进行调用.
#17
A和B在一个命名空间,最好在一个工程中编译,A类的方法属性必须为public,如果在B中不想用new的话,可以声明A的那个方法为public static为静态方法。用你的那个方法是可以的new 命名空间名字.类名().公共方法();
#18
因为的想做这样的效果,就是当B页面单击某个按钮后,调用A页面的一个公共方法,这个方法是控制A页面中一些控件的显示问题,楼上几个兄弟说,写公共类,我也知道呀,通用嘛,但是公共类能控制A页面的控件吗??不能对吧,所以我才想在B页面访问A页面。。!
#19
由于都是传统的网页,都有刷新的,也不能像Flex那样能跟着某个类中变量值的变化而发生处理,所以我想做这么普通的效果都头疼了。。汗!
#20
#1
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
#2
在b中
parent.document.getElementById("button1").click();
parent.document.getElementById("button1").click();
#3
parent.window.document.getElementById("button1").click();
#4
楼上的兄弟,这个是访问其他页面的单击事件吧,我是想访问A类的特定的公有方法哦。
#5
parent.document.getElementById('<%=btn.ClientID %>').click();
#6
楼上几个兄弟,你们貌似误解我的意思,我是想在ASP.NET中,在B页面的后台类中,调用A页面后台类中的公有方法,你说的那些是JS调用吧。
#7
调用A页面方法
否则使用ajax
否则使用ajax
#8
楼上几个兄弟,你们貌似误解我的意思,我是想在ASP.NET中,在B页面的后台类中,调用A页面后台类中的公有方法,你说的那些是JS调用吧。
==>
click后就可以调用A 的后台方法.
在B的后台调用A的后台,如果是与上下文无关是可以的,如果有关则不行.
无关:
new A().public方法();
==>
click后就可以调用A 的后台方法.
在B的后台调用A的后台,如果是与上下文无关是可以的,如果有关则不行.
无关:
new A().public方法();
#9
请问怎样才与上下文无关呢?
我在B页面后台类中 new 一个 A页面后台类的实例,但编译时候提示找不到该类型或命名空间。
#10
无关是指,你使用这个方法的时候,与你客户A页面请求的数据没有任何关系,否则就有问题.
另:你的类名写得不对.
另:你的类名写得不对.
#11
类名不对?
我是添加新项后自动生成的后台类
public partial class Student: System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e)
{
}
}
我是添加新项后自动生成的后台类
public partial class Student: System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e)
{
}
}
#12
对了,我还试过在A页面和B页面加上同样的命名空间,然后在B页面导入命名空间,然后用“命名空间名字.类名.公共方法()”这格式调用,编译出错,提示在命名空间下找不到指定类别。
#13
new 命名空间名字.类名().公共方法();
如果同一空间,省略命名空间名字
如果同一空间,省略命名空间名字
#14
哎,还是不行,原来不同页面后台类调用这么困难的,A页面和B页面分别处于不用文件夹下,是不是这个原因影响的?
刚才试了命名空间,还是提示:
“找不到类型或命名空间名称“adminobj”(是否缺少 using 指令或程序集引用?) ”
刚才试了命名空间,还是提示:
“找不到类型或命名空间名称“adminobj”(是否缺少 using 指令或程序集引用?) ”
#15
看来我这问题还是不能解决,郁闷呀。!
#16
何必呢?
为什么一定要调用B页面的后台公用方法?你可以将B页面的公用方法,写在某个类里面,然后B页面可以调用此类里面,A页面也可调用此类,问题不就结了?
比如:
public class abc
{
public static void 需要复用的方法()
{}
}
B页面某方法:
privaet void xx()
{
//调用abc类的方法
abc.需要复用的方法();
}
A页面也可调相同方法
privaet void axx()
{
//调用abc类的方法
abc.需要复用的方法();
}
或者有特殊要求?如果是,你可通过反射的手段来进行调用.
为什么一定要调用B页面的后台公用方法?你可以将B页面的公用方法,写在某个类里面,然后B页面可以调用此类里面,A页面也可调用此类,问题不就结了?
比如:
public class abc
{
public static void 需要复用的方法()
{}
}
B页面某方法:
privaet void xx()
{
//调用abc类的方法
abc.需要复用的方法();
}
A页面也可调相同方法
privaet void axx()
{
//调用abc类的方法
abc.需要复用的方法();
}
或者有特殊要求?如果是,你可通过反射的手段来进行调用.
#17
A和B在一个命名空间,最好在一个工程中编译,A类的方法属性必须为public,如果在B中不想用new的话,可以声明A的那个方法为public static为静态方法。用你的那个方法是可以的new 命名空间名字.类名().公共方法();
#18
因为的想做这样的效果,就是当B页面单击某个按钮后,调用A页面的一个公共方法,这个方法是控制A页面中一些控件的显示问题,楼上几个兄弟说,写公共类,我也知道呀,通用嘛,但是公共类能控制A页面的控件吗??不能对吧,所以我才想在B页面访问A页面。。!
#19
由于都是传统的网页,都有刷新的,也不能像Flex那样能跟着某个类中变量值的变化而发生处理,所以我想做这么普通的效果都头疼了。。汗!