高分求救!Page类里的Construct()方法的问题!!为什么在这个方法中不能进行如下操作?!!...急!!

phqde 2004-12-07 08:54:33
问题的详细情况:
我定义了一个类(作为别的页面的基类)BasePage,部分代码如下:
public class BasePage : System.Web.UI.Page
{

public BasePage()
{
this.Load+=new EventHandler(this.Page_Load);
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}

//下面代码出错!!!
protected override void Construct()
{
base.Construct ();
//如果把下面两句该为别的就没错了,为什么?!
Control c=(Control)(this.LoadControl(@"../controls/pagertop.ascx"));
this.Controls.Add(c);
}

}
现在,有一页面类a.asp.cs(即a.aspx对应的隐藏代码),它继承自BasePage,部分代码如下:
public class tableDetails :BasePage//作面的代码就不用说了,这一行就导致VS.NET控件栏无效!
{
........
........

}
编译可以通过,但此时VS编辑器环境的控件栏却变为灰色!
出错提示: 试图创建 BasePage 的实例时发生异常。异常为“无法使用前导 .. 在顶级目录上退出。”。请高手指点迷津!先谢谢了!!!
急!!!急!!!!





...全文
63 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
phqde 2004-12-08
  • 打赏
  • 举报
回复
To saucer(思归):
我一开始就用你的方法,即:
protected override void OnInit(EventArgs e)
{
base.OnInit (e);
Control c=(Control)(this.LoadControl("../controls/pagertop.ascx"));
this.Controls.Add(c);
}
但是这种方法达不到我得要求。我的目的是在页面的顶端显示此用户控件的内容!
但是若用OnInit这种方法加载用户控件,那么如果再在页面中填加别的控件,则在OnInit方法中Load的用户控件就不会显示在页面的顶端了!

可能有人说:在每个页面中注册这个用户控件就行了!但我觉得有点麻烦,因为相似的页面很多!所以,我想作个基类(继承自Page)作为所有页的父类,可现在的问题(如上所述)出现了!
急!!!请各位不吝赐教!

saucer 2004-12-08
  • 打赏
  • 举报
回复
Construct() runs at constructor time, at that time, it is probably a bad idea to add controls like that, try Init instead


protected override void OnInit(EventArgs e)
{
base.OnInit (e);
Control c=(Control)(this.LoadControl("../controls/pagertop.ascx"));
this.Controls.Add(c);
}
SeeSunSet 2004-12-08
  • 打赏
  • 举报
回复
你把这个换成随便一个文本框试一下会不会出错?
(@"../controls/pagertop.ascx"))
phqde 2004-12-08
  • 打赏
  • 举报
回复
To:saucer(思归) 非常谢谢!
saucer 2004-12-08
  • 打赏
  • 举报
回复
>>>在页面的顶端显示此用户控件的内容

how about:

this.Controls.AddAt(0,c);
??

also you could

protected override void OnInit(EventArgs e)
{
Control c=(Control)(this.LoadControl("../controls/pagertop.ascx"));
this.Controls.AddAt(0,c);
base.OnInit (e);
}
phqde 2004-12-07
  • 打赏
  • 举报
回复
不好意思,上面的public class tableDetails :BasePage中的tableDetails应改为a!!!

62,041

社区成员

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

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

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

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