2011-04-11 2 views
1

또 다른 .NET 초보자 질문기능이 없으므로 사전로드를 재정의 할 수 없습니까?

나는 예압을 재정의 의도와 System.Web.UI.Page를 상속 기능을 언로드하는 클래스를 만들었습니다. 그러나 Visual Studio는 "System.Web.UI.Page.PreLoad"가 함수가 아니기 때문에 내가 재정의 할 수 없다고 불평합니다. 내 코드에 무슨 문제가 있습니까? 여기에 있습니다 :

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Configuration; 

public partial class BTPage : System.Web.UI.Page 
{ 
    protected SqlConnection cnx; 

    public override void PreLoad(object sender, EventArgs e) 
    { 
     cnx = new SqlConnection(ConfigurationManager.AppSettings["btdatabase"]); 
     cnx.Open(); 
    } 

    protected void Unload(object sender, EventArgs e) 
    { 
     cnx.Close(); 
    } 
} 

내 코드에 대해 경고하는 것이 있으면 알려주십시오. 나는 닷넷을 처음 접했고 ".NET 방식"으로 일을하는지 확신 할 수 없다.

나는 또한 모든 웹 페이지가 BTPage로부터 상속 받도록하여 미리로드 할 때 데이터베이스에 대한 연결을 모두 열도록하고 싶습니다.

답변

2

PreLoadPage 유형의 메소드가 아닙니다. 당신은 오버라이드가 필요합니다. OnPreLoad

+0

좋아,'PreLoad'를'OnPreLoad'로 바꿨습니다. 이제'BTPage.OnPreLoad (object, System.EventArgs) ': 적절한 메소드가 오버라이드되지 않습니다. 어떤 아이디어? – John

+0

'OnPreLoad'는 이벤트 구독이 아니지만 이벤트가 시작된 곳입니다. 즉, 'sender' 인수가 없음을 의미합니다. 메소드 서명을'protected override void OnPreLoad (EventArgs e)'로 변경해야합니다. –

+0

깔끔하게 작동했습니다. 감사합니다! – John