asp.net – 如何从usercontrol处理页面事件? (VB.net)
我想在usercontrol的生命周期的“预加载”阶段执行一些代码.但是,preload事件仅在Page对象上可用.所以,我在我的usercontrol中添加了以下方法:
Private Sub Page_PreLoad(ByVal sender As Object,ByVal e As System.EventArgs) Handles Page.PreLoad 但是,我知道得到编译错误:“Handles子句需要在包含类型或其基类型之一中定义的WithEvents变量” 由于Page属性是从UserControl继承的,所以我看不出如何轻松完成. 任何帮助感激不尽! 解决方法
我为给出一个C#示例而道歉,但我不记得如何在VB中做到这一点……
无论如何,在UserControl的Init中,您可以显式地将Page_PreLoad方法指定为UserControl的Page属性的PreLoad事件的处理程序,而不是使用方法声明中的“Handles”语法.您的示例正在尝试将事件处理程序分配给UserControl对象上的事件,以用于UserControl对象不引发的事件.如您所述,UserControl不会继承自PreLoad事件所在的Page.但是,UserControl包含一个Page对象作为其属性之一,而后者又将PreLoad公开为可以为其分配处理程序的事件.无论如何,这会编译并接近你正在寻找的东西(使用C风格的注释来保留WMD语法高亮). Protected Overrides Sub OnInit(ByVal e As System.EventArgs) // this assigns Page_PreLoad as the event handler // for the PreLoad event of the Control's Page property AddHandler Me.Page.PreLoad,AddressOf Page_PreLoad MyBase.OnInit(e) End Sub Private Sub Page_PreLoad(ByVal sender As Object,ByVal e As System.EventArgs) // do something here End Sub 我不确定这是否符合您的目的 – 正如Stephen Wrighton上面指出的那样,在页面生命周期中可能有更好的方式来处理其中一个不同的事件.但是,基于他所说的,这应该有效,因为调用控件的OnInit,在其中进行事件处理程序赋值,然后引发Page的OnLoad事件,然后执行控件中的事件处理程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net省市三级联动的DropDownList+Ajax的三种框架(aspnet
- stored-procedures – 如何在ASP.Net MVC(C#)中调用和执行存
- asp.net-mvc – 在ASP.NET MVC 3中自定义模型绑定错误消息
- MVC .Net Cascade在使用EF Code First Approach时删除
- Asp.Net的FileUpload类实现上传文件实例
- asp.net-mvc – ASP.NET MVC区域可以显示自己的错误页面集吗
- asp.net-mvc – S#arp架构与直接IOC NHibernate MVC
- asp.net-mvc-3 – ASP.NET MVC DropDownListFor从模型中选择
- asp.net-mvc – IIS 7.0不显示自定义错误页面
- asp.net – 如何为WCF服务创建重定向?
- asp.net-mvc – ASP.NET MVC 2,Ninject 2.2并没有
- asp.net-mvc – 尝试使用Moq模拟HtmlHelper时抛出
- asp.net-mvc-3 – ASP.NET MVC 3将无法识别.csht
- asp.net-mvc-3 – 服务器端命令行
- 如何将数组从Asp.net服务器端传递到客户端的Java
- asp.net – 无法获取管道:loadVisitor(domain:
- asp.net – 如何在EF Core中向Identity用户添加外
- asp.net – 处理“潜在的危险Request.Form值…”
- asp.net – 从DropDownList中删除列表项
- Asp.Net MVC 3部分页面输出缓存不符合配置设置