2009-08-25 5 views
0

웹 파트에서 각 셀이 포스트 백으로 인해 다른 데이터 집합을 표시 할 수있는 동적 테이블을 표시하는 가장 좋은 방법은 무엇입니까?웹 파트, 동적으로 생성 된 컨트롤 및 이벤트 핸들러

예컨대, 일부 재무 데이터 상상 : Q2 값 클릭에

 
Table 1: Quarters in year 

     | Q1 | Q2 | Q3 | Q4 | 
Things 1 | 23 | 34 | 44 | 32 | 
Things 2 | 24 | 76 | 67 | 98 | 

을 것들이 1 (34)이 두 번째 테이블 대신 표 1로 표시되는 이어질 것이다

 
Table 2: Weeks in Quarter 

      | W1 | W2 | W3 | W4 | W5 | W6 | W7 | 
SubThings 1 | 231 | 22 | 44 | 22 | 344 | 86 | 12 | 
SubThings 2 | 14 | 75 | 47 | 108 | 344 | 86 | 12 | 

내가 현재 취하고있는 접근법의 문제점은 CreateChildControls에서 표 1을 만들 수 있다는 것입니다.이 표는 모든 이벤트가 셀의 모든 링크 버튼에 제대로 연결되도록합니다. 포스트 백에, 나는 다시을 CreateChildControls 표 1을 만들 eventhandlers을 위해해야하기 때문에

그러나, 제대로 유선 및 이벤트 화재로 후을 CreateChildControls, 나는 단지 내가이를 변경해야하는 것을 알고 테이블 이후 CreateChildControls.

따라서 테이블 2를 리졸버 (CreateChildControls 이후부터)로 만들면 어디서나 올바르게 이벤트를 연결시킬 수 없습니다.

의견이 있으십니까?

감사 무

편집 : 그것을 해결.

당신이해야 할 일은 이벤트 처리기 호출을 OnPreRender에서 체크하고 필요한 플래그를 설정 한 다음 this.CreateChildControls를 수동으로 호출하여 새 테이블이 만들어지고 모든 것이 올바르게 연결되도록하는 것입니다.

+0

@ 구 질문에 대한 답으로 솔루션을 남겨두고 답변으로 표시하기 위해 며칠 후에 다시 생각해 보는 것이 좋습니다. 그렇지 않으면 영원히 질문 목록에 답을 얻지 못할 것입니다. –

답변

0

, 여기에 대한 답변입니다 그 후에 모든 것을 다시 초기화해야합니다.

이렇게하려면 먼저 CreateChildControls를 이전 페이지와 동일하게 만든 다음 OnPreRender에서 이벤트 핸들러 호출이 있는지 확인하고 필요한 플래그를 설정 한 다음 this.CreateChildControls를 새 설정 정보와 함께 수동으로 호출하여 새 테이블이 만들어지고 모든 것이 올바르게 연결됩니다.

0

여기 마스터/세부 상황에 대해 이야기하는 것처럼 보입니다. 두 개의 웹 파트를 만들고 웹 파트 연결을 사용하여 첫 번째 웹 파트에서 두 번째 웹 파트의 테이블 2로 필요한 정보를 테이블 1과 통신 할 수 있습니까?

J

+0

2 개의 테이블에 대해서만 해결할 수 있지만 2 개 이상은 해결할 수 없습니다. – Moo

0

다만, 귀하의 웹 파트에 두 테이블을 추가 첫 번째, 다음 OnClick 이벤트 핸들러에 두 번째 테이블의 데이터 소스를 설정 클릭 된 요소를 가질 때까지 두 번째를 숨길, 눈에 보이는 첫 번째로 두 번째 그리드를 설정 당신은을 CreateChildControls에서 동일한 컨트롤을 만들 수있는 이벤트를 허용 할 필요가 있으므로,

이벤트 전에 그들에게 묶여해야

가 호출되는 : 숨겨진에 ...

알렉스의 제안에서
+0

그 문제는 두 테이블에 대한 문제를 해결하지만 세 개의 테이블 또는 n 테이블에 대한 문제가 해결되지 않는다는 것입니다. 나는 n 테이블에 대해 문제를 직접 해결했습니다. – Moo

+0

그 질문에서 분명하지는 않았지만 계속 드릴 다운해야했습니다. 내 솔루션은 내 자신의 템플릿 컨트롤을 만드는 것입니다 ... – Colin

관련 문제