ASP에서 반복적 인 문제는 Page_Load 이벤트가 발생하기 전에 이벤트를 잡는 것입니다. 예를 들어 여기 gridView 클래스에서 상속 한 gridview를 사용자 지정합니다. 드롭 다운 목록을 추가하여 점프 할 페이지를 선택합니다 (PageIndexChanged). 이 드롭 다운 목록의 SelectedIndexChanged 이벤트가 렌더링 된 후에 호출된다는 점을 제외하면 모든 것이 훌륭합니다 (그리드와 드롭 다운은 각 포스트 백마다 재생성됩니다). 그래서 나는 그것에서 올바른 가치를 선택할 수 없습니다.Page_Load 전에 이벤트를 잡는 방법
내 이벤트는 두 번째 포스트 백에서만 발생하므로 항상 포스트 백이 늦습니다.
해당 드롭 다운은 RowCreated 이벤트에 추가됩니다. 다른 이벤트에서 시도했지만 너무 늦었거나 너무 일찍 시작했는지 (너무 늦은 경우 렌더링되지 않았거나 너무 일찍 누락 된 요소).
모든 솔루션?
PS : 나는 나를 도울 수 this article을 발견,하지만 난 그것을 수행하는 방법 쉬르 아니에요 :
포인트를 확장/제어를 만들거나 enheriting 때 고려해야 할 :
- 당신은이 base.CreateChildControls()를 호출 한 CreateChildControls를 재정 의하여 이벤트를 발생시킬 항목을 만들면 원하는 모든 작업을 수행 할 수 있습니다. 즉, 행을 추가하십시오.
- 목록 항목 데이터 바인딩 방법은 매우 복잡합니다. 정숙하지 않습니다. DataBind()를 재정 의하여 간단하게 만들어야합니다. 어린이를 지우고 EnsureChildControls()를 호출 한 다음 새로운 행을 추가합니다. ..이 방식은 ViewStated, persisted 및 event managed를 훌륭하게 처리합니다. 훨씬 간단합니다.
- 다시 목록 항목 : 너무 일찍 자녀를 만들지 마십시오. OnInit 또는 onLoad에서 직접 하위 컨트롤을 만들지 마십시오. 그것의 실수는 입니다. 가장 좋은 방법은 이 필요할 때 시스템이 EnsureChildControls를 호출하도록하는 것입니다 (첫 페이지로드시 PreRender에서, PostBack에 어린이 용 이벤트가있는 경우 ). 에서 더 나빠질 때 OnInit, EnsureChildControls()를 호출합니다.
* "나는 다른 사건을 시도했지만 너무 늦었거나 너무 일찍 했나"*. 나는 그가 그걸 이미 본 줄 알았는데 :) – mattytommo
@mattytommo - 가정이 엉덩이를 만들고. 잠깐, 맞지 않아요;) – Jamiec
하하, 가정은 모든 가정의 가정이라고 말합니다. – mattytommo