2009-07-07 2 views
0

C# (asp.net)동적으로 생성 된 컨트롤에서 사용자가 입력 한 데이터를 세션 상태에 저장하는 방법은 무엇입니까?

프로그래밍 방식으로 여러 개의 드롭 다운 목록 (임의 번호)을 만듭니다. 사용자는 각 목록에서 특정 값을 선택하고 사용자가 선택한 값을 저장해야합니다.

단추 클릭 이벤트를 사용하여 세션 상태로 데이터를 저장하려고하면 드롭 다운 목록 개체가 만들어지지 않았다는 메시지가 나타납니다. (분명히 사촌 내가 아래의 페이지로드 이벤트에서 드롭 다운 목록을 만들거야! IsPostBack)

내가 페이지 상태에서 페이지로드 이벤트에서 데이터를 저장하려고하면 IsPostBack에서 나는 단지 각각에서 첫 번째 값을 얻을 명부. (페이지가 포스트 백 이후에 재현 될 때 분명히 사촌, 드롭 다운리스트가 다시 만들어지고 사용자가 입력 한 데이터는 손실됩니다).

버튼을 클릭하면 드롭 다운 목록에서 사용자가 선택한 값을 어떻게 저장합니까? 코드 숨김 파일에서이 작업을 수행하고 있습니다.

+0

페이지 순환을 어떻게 보이나요, 페이지를 렌더링하고 자바 스크립트를 통해 드롭 다운을 작성 하시겠습니까? 아니면 각각의 선택에 따라 페이지를 만들지 ... 또는 –

답변

0

에 따라 오히려 복잡하고 어려운 끝, 당신은 모든 게시에있는 DropDownList 컨트롤을 모두 다시해야합니다. 또한 을 만들어야 상태가 복원됩니다. 즉, 페이지로드 이벤트의 "Under! IsPostBack"이 이미 너무 늦었습니다. 페이지 초기화로 이동하십시오.

+0

아아아, 알았어. 페이지 초기화에서 컨트롤을 생성합니다. 버튼 클릭 이벤트가 발생하면 각 드롭 다운 목록 객체의 인스턴스가 존재하게됩니다. 사실상 전체 페이지 사이클을 두 번 사용한다고 생각합니다. –

0

모든 포스트 백마다 모든 드롭 다운을 다시 만들어야합니다.

0

개인적으로 (MVC로 전환 할 수있는 능력이없는) 포스트 백을 없애고 표준 HTTP POST 요청에서 직접 값을 읽는 것을 고려할 것입니다.

포스트 백에 동적 컨트롤의 구현은 종종 존 손더스 말했듯이

+0

true. 이제 페이지 수명주기에 대한 자세한 내용을 읽게되었습니다. MVC와 http 포스트에 오기 전에 잠시만 기다려주세요. –

+0

온라인 개발자가 처음이라면 Web Forms보다는 MVC를 배우는 것이 좋습니다. –

관련 문제