2009-10-30 5 views
0

주 메뉴에 로그 아웃 단추가 있는데 로그 아웃 할 메서드를 실행하고 싶습니다. 그러나이 코드는 다른 위치에서도 호출 할 수 있으므로이 메서드를 정적 메서드로 별도의 클래스에 저장하려고합니다.ASP.NET 단추가 OnClick에 넣은 메서드를 찾을 수 없다고 말합니다.

컴파일러 오류 메시지 :

CS1061: 'ASP.adminpages_masterpages_adminsystem_master' does not contain a definition for 'ExtensionMethods' and no extension method 'ExtensionMethods' accepting a first argument of type 'ASP.adminpages_masterpages_adminsystem_master' could be found (are you missing a using directive or an assembly reference?)

내 ExtensionMethods 클래스 :

namespace ExtensionMethods 
{ 
    public static class MyExtensionMethods 
    { 
     public static void Logout(object sender, EventArgs e) 
     { 
       //Logout Code 
     } 
    } 
} 

내 버튼 :

<asp:LinkButton runat="server" OnClick="ExtensionMethods.MyExtensionMethods.Logout" Text="Log Out"></asp:LinkButton> 

아이디어?

답변

2

코드 숨김에서 버튼 클릭을 처리하고 다른 클래스의 정적 메서드를 호출해야합니다.

<asp:LinkButton id="button1" runat="server" 
     OnClick="LinkButton_Click" Text="Log Out"></asp:LinkButton> 

숨김 코드 :

void LinkButton_Click(Object sender, EventArgs e) 
    { 
     ExtensionMethods.MyExtensionMethods.Logout(sender, e); 
    } 

이 더 많은 예제에 대한 참조를 확인하십시오 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.click.aspx

+0

코드 숨김이 아니라 별도의 클래스이므로 어떻게 찾을 수 있습니까? – NibblyPig

+0

@SLC : 알았어, 내 대답을 수정 했어 –

+0

나는 이것을 피하고 직접 연결하기를 바랐다. 그러나 다른 방법이 없다면 나는 이것을 환호했다. – NibblyPig

0

이벤트 처리기 정말 페이지 클래스에있을 정적 안된다. 이상적으로는 보호되어야하지만 공개 될 수 있습니다.

+0

@Kieron : 당신과 나는 그의 질문을 오해했습니다. 트리거되는 기능은 페이지의 범위 밖에 있습니다. :) –

관련 문제