2009-10-22 7 views
1

나는 통신 할 수있는 두 개의 웹 파트가 있습니다. 공급자는 최소한 공급자의 Page_Load 이벤트가 발생할 때까지 소비자에게 값 (RID)을 제공 할 수 없습니다. 따라서 소비자는 Page_Load 이후까지 RID를 알 수 없습니다. 그래서 Page_LoadComplete에 연결했습니다. 이제 문제가 있습니다. 소비자는이 RID를 기반으로 동적 컨트롤을 만듭니다.C#에서 Page_Load 후에 동적 컨트롤 값 가져 오기?

지금. 이 동적으로 생성 된 컨트롤은 Page_Load 다음에 만들어집니다. 그래서, 그들의 viewstate 복원되지 않습니다 (동적 컨트롤을 Page_Load 안에 만들어진 그들의 값을 복원 할 수 있습니다). 내가 얻을 수 있다면

그래서

는, 기본적으로 내가 필요한 것은, 또한 ..

수동으로 제어 viewstate가를 복원하거나, 또는 POST 변수 또는 C#에서 동등한에서 컨트롤의 값을 얻을 수있는 방법입니다 Page_Init에서 컨트롤의 값도 작동합니다.

답변

2

Request.Form 키/값 쌍의 게시물에서 반환 된 모든 정보. 거기에서 확인하고 키에서 컨트롤 ID를 검색하면 뷰 상태를 보지 않고 값을 얻을 수 있습니다.

키는 Client ID이며 사용자가 지정한 ID가 아니기 때문에 각 키를보고 어떤 키가 제어 이름을 포함하고 있는지 검색해야 할 것입니다.

+0

사실 나는 그것을보기 시작했습니다. ClientID는 문자열 값 = Request.Form.GetValues ​​(ddlMyControl.UniqueID) [0]과 같은 것을 사용하여 얻을 수 있습니다. 1 요소 문자열 배열을 반환하기 때문에 마지막에 [0]을 사용합니다. – Earlz

0

컨트롤이 동적 인 경우 다시 게시가 발생할 때까지 ViewState에 없습니다. 따라서 ViewState를 직접 ViewState에 추가하지 않는 한 ViewState는 초기로드에서 사용할 수 없습니다.

ViewState.Add("myRID", RID) 

또는 당신은 sessionState의에 저장하고, viewstate가 어쨌든 너무 큰 얻을하는 경향이 있기 때문에 ViewState에 과부하가 없습니다. 나는 SessionState와 함께 갈 것이다.