以下方法返回错误:'无法找到事件init'并在System.Web.UI.Page
上出现错误Visual Studio 2010,框架3.5
Public Class_default
Inherits System.Web.UI.Page
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
End Sub
答案 0 :(得分:4)
我不是VB.NET专家(我在C#上写)但我可以说问题的原因是你需要覆盖 OnInit 方法而不是Page_Init。
因此,您需要使用以下代码:
Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Friend Overrides Sub OnInit(ByVal e As EventArgs)
MyBase.OnInit(e)
End Sub
End Class
答案 1 :(得分:1)
我认为Maxim是正确的,但您也可以通过执行以下操作添加事件处理程序:
AddHandler Me.Init, AddressOf Page_Init
我认为这是对的,对不起我的VB很生锈。
答案 2 :(得分:1)
那么,
我假设您在标记中使用AutoEventWireup="true"
,但您还使用Handles
关键字标记了处理程序。
AutoEventWireup不起作用,它无法直接访问您班级的私人成员。
设置AutoEventWireup="false"
并保存其needless performance penalty,处理程序仍应触发,因为它明确Handles
Page.Init
事件。
由于您正在明确处理事件,因此您也可以自由更改事件处理程序的名称并删除丑陋的_
。
答案 3 :(得分:0)
大多数Crystal Reports代码都可能出现在Page_Load事件中。如果您将其移至Page_Init,您将发现它可以正常工作。