2009-04-29 7 views
3

C#을 사용하면 AutoEventWireup이 false로 설정된 컨트롤이 많은 웹 폼이 있습니다. 이렇게하면 ctor 또는 OnInit를 재정 의하여 필요한 처리기를 초기화해야합니다.많은 컨트롤이있는 페이지에서 AutoEventWireup false (C#)

페이지의 컨트롤에 필요한 처리는 어떻게됩니까? 여러 개의 GridView 이벤트가 아닌 드롭 다운 및 목록 상자에 버튼 클릭 및 SelectedIndexChanged 추가.

AutoEventWireup을 true로 설정하면 모든 컨트롤 (페이지 포함)에 대한 모든 이벤트가 심지어 당신이 필요로하지 않은 모든 것조차도 뒤에서 유선 접속이 가능합니다.

AutoEventWireup을 false로 설정하면 ctor/OnInit에 12 개 또는 2 개의 이벤트 구독이 필요합니까? (this.Load + = ... this.GridView1.Sorted + = ... this.Button1.Click + = ... 등)

+0

무엇이 문제입니까? "페이지의 컨트롤에 필요한 처리 방법은 무엇입니까?" 그게 다야? – Cerebrus

+1

질문 : "AutoEventWireup이 false 인 경우 모든 컨트롤 이벤트 구독을 OnInit에 두는 것이 적절한 디자인입니까?" (Handles 키워드가 없으므로) 조금만 거슬러 올라가는 것 같았습니다. –

답변

3

예, AutoEventWireup을 다음과 같이 설정하면 모든 이벤트를 수동으로 연결해야합니다. false. OnInit 메서드는 이러한 이벤트 처리기를 연결하는 좋은 방법이며 페이지의 컨트롤에 필요한만큼 많은 이벤트 구독이 있어야합니다.

AutoEventWireup은 좋은 생각이지만 속도가 느리고 조금 마법적입니다. 나는 wireups를 명시 적으로하는 것이 훨씬 낫다는 것을 안다.

+5

+1을 청원서에서 AutoEventWireUpWithUnicorns로 공식 변경하십시오. –

1

AutoEventWireUp는 페이지의 모든 컨트롤 이벤트가 아닌 특정 기본 제공 페이지 또는 컨트롤 수준 이벤트 만 자동으로 연결합니다.

목록은 Simon's answer에서 this question입니다.

관련 문제