13 个解决方案
#1
只有Control有Load事件,Component没有Load事件!
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
#2
Component本身是没有Load事件,但是否能自已实现?我想,Control也只不过是自己实现了而已呀。把事件加到Page对象中,当页面装载时就调用组件的装载事件,应该是可以的吧?但我不知如何实现它。
#3
组件的Initialize方法发生得太早了,以至于想调用Page对象时会出错,怎样在页面被装载时得到Request[]内容?
#4
可以重构它的create方法。
#5
构造函数与Initialize一样,都发生得太早了。
#6
Component根本没有什么Page对象,请看看.net文档中的帮助!
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
#7
我以前也发现过这个问题,可我到现在还没有解决,说真的,真是很讨厌Component竟然没有Load事件,我一直想用继承的方法来实现,可没有成功!
#8
Component是没有Page对象,但它可以调用它的容器所在的Page对象,如在组件的一个方法中写Page p = (Page)System.Web.HttpContext.Current.Handler;完全可以使用p来得到Request等内容,但问题是,如果是写到构造函数中,就会出错,我想是由于构造组件的时候,外层的Page对象还根本没有生成,所以不能调用到。如果是单独写在方法中,怎样可以使用JS在提交时可以自动调用呢?
#9
上面的方法确实可以调用Page对象!但Component本身没有Load事件,你如果想给它加上一个Load事件,就需要写一个组件类从Component继承,在你的这个组件类中加入你的自定义事件Load,然后再让你现在的这个组件从上面那个自定义组件继承,否则你无法给Component直接加个Load事件,事件是组件内部固有的对象,你无法添加也无法去除!
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
#10
多谢指导,我对自定义事件写法不太熟悉,参照MSDN写总不对。
#11
学习
#12
各位帮我测试一下我新做的控件,下载地址:
http://www.aspxcontrol.com/download/WebMessageBox.zip
http://www.aspxcontrol.com/download/WebMessageBox.zip
#13
我又一个想法但是没有实验过:
在组件里实现OnPageLoad事件处理:
public event void OnPageLoad(EventArgs e)
{
....
}
在组件构造函数里:
public XXCom(Container)
{
...
Page pg = container as Page;
if (pg != null) pg.Load += new EventHandler(this.OnPageLoad);
...
}
试试看,有效果就给我报个喜。
在组件里实现OnPageLoad事件处理:
public event void OnPageLoad(EventArgs e)
{
....
}
在组件构造函数里:
public XXCom(Container)
{
...
Page pg = container as Page;
if (pg != null) pg.Load += new EventHandler(this.OnPageLoad);
...
}
试试看,有效果就给我报个喜。
#1
只有Control有Load事件,Component没有Load事件!
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
#2
Component本身是没有Load事件,但是否能自已实现?我想,Control也只不过是自己实现了而已呀。把事件加到Page对象中,当页面装载时就调用组件的装载事件,应该是可以的吧?但我不知如何实现它。
#3
组件的Initialize方法发生得太早了,以至于想调用Page对象时会出错,怎样在页面被装载时得到Request[]内容?
#4
可以重构它的create方法。
#5
构造函数与Initialize一样,都发生得太早了。
#6
Component根本没有什么Page对象,请看看.net文档中的帮助!
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
#7
我以前也发现过这个问题,可我到现在还没有解决,说真的,真是很讨厌Component竟然没有Load事件,我一直想用继承的方法来实现,可没有成功!
#8
Component是没有Page对象,但它可以调用它的容器所在的Page对象,如在组件的一个方法中写Page p = (Page)System.Web.HttpContext.Current.Handler;完全可以使用p来得到Request等内容,但问题是,如果是写到构造函数中,就会出错,我想是由于构造组件的时候,外层的Page对象还根本没有生成,所以不能调用到。如果是单独写在方法中,怎样可以使用JS在提交时可以自动调用呢?
#9
上面的方法确实可以调用Page对象!但Component本身没有Load事件,你如果想给它加上一个Load事件,就需要写一个组件类从Component继承,在你的这个组件类中加入你的自定义事件Load,然后再让你现在的这个组件从上面那个自定义组件继承,否则你无法给Component直接加个Load事件,事件是组件内部固有的对象,你无法添加也无法去除!
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
#10
多谢指导,我对自定义事件写法不太熟悉,参照MSDN写总不对。
#11
学习
#12
各位帮我测试一下我新做的控件,下载地址:
http://www.aspxcontrol.com/download/WebMessageBox.zip
http://www.aspxcontrol.com/download/WebMessageBox.zip
#13
我又一个想法但是没有实验过:
在组件里实现OnPageLoad事件处理:
public event void OnPageLoad(EventArgs e)
{
....
}
在组件构造函数里:
public XXCom(Container)
{
...
Page pg = container as Page;
if (pg != null) pg.Load += new EventHandler(this.OnPageLoad);
...
}
试试看,有效果就给我报个喜。
在组件里实现OnPageLoad事件处理:
public event void OnPageLoad(EventArgs e)
{
....
}
在组件构造函数里:
public XXCom(Container)
{
...
Page pg = container as Page;
if (pg != null) pg.Load += new EventHandler(this.OnPageLoad);
...
}
试试看,有效果就给我报个喜。