如我有页面
OrderList.aspx
他下面有用户控件
Header.ascx现在程序结构为:public partial class User_OrderList : WebUserBase
public partial class UserControl_Header : System.Web.UI.UserControl问:1
我如何在OrderList.aspx.cs中取得他的父类名称
如:OrderList.aspx.cs的父类名称为WebUserBase问:2
我如何在Header.ascx.cs中取他的父类名称(这个应该和问题一差不多)问:3 这个是主要问题
我如何在Header.ascx中取他的所在页面的父类名称
如:现在我把Header.ascx放在OrderList.aspx中
那么我如何在Header.ascx.cs中取得他的页面的父类名称
也就是OrderList.aspx.cs的父类WebUserBasey谢谢
OrderList.aspx
他下面有用户控件
Header.ascx现在程序结构为:public partial class User_OrderList : WebUserBase
public partial class UserControl_Header : System.Web.UI.UserControl问:1
我如何在OrderList.aspx.cs中取得他的父类名称
如:OrderList.aspx.cs的父类名称为WebUserBase问:2
我如何在Header.ascx.cs中取他的父类名称(这个应该和问题一差不多)问:3 这个是主要问题
我如何在Header.ascx中取他的所在页面的父类名称
如:现在我把Header.ascx放在OrderList.aspx中
那么我如何在Header.ascx.cs中取得他的页面的父类名称
也就是OrderList.aspx.cs的父类WebUserBasey谢谢
默认页面的得到基类名 "System.Web.UI.Page"从控件得到页面的基类通过反射应该也能 没试过
这种不行。。
要在程序中取的谢谢
这个可以得到当前的CS的基类也就是说可以实现我的 问题1 问题2但是我的问题3要怎么琮解决呢
谢谢问:3 这个是主要问题
我如何在Header.ascx中取他的所在页面的父类名称
如:现在我把Header.ascx放在OrderList.aspx中
那么我如何在Header.ascx.cs中取得他的页面的父类名称
也就是OrderList.aspx.cs的父类WebUserBase
我说的传参 是要在用户控件中声明一个public的属性 在引用它的页面的Page_load或重写OnInit方法中给控件对象中的该属性赋值 再进行你的下一步操作
例public MyUserControl:System.Web.UI.UserControl
{
private string pageBaseClassName;
public string PageBaseClassName
{
get{return pageBaseClassName;}
set{pageBaseClassName=value;}
}
//其它操作
}public a:System.Web.UI.Page
{
void Page_load(object Sender,EventArgs e)
{
MyUserControl1.PageBaseClassName=System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.BaseType.Name;
}
}如果觉得这样不行 还是用反射(或Trace方法)吧
因为页面有很多,这样子传的话我要改很多页面如果在ascx中能直接取得的话就只要改这个用户控件就行了谢谢谢谢
public partial class UserControl_Header : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(this.NamingContainer.GetType().BaseType.BaseType.FullName);
}
}