2010-03-13 4 views
1

Hii,ASP NET NET을 사용하는 온라인 퀴즈

MCQ가있는 온라인 퀴즈 웹 사이트를 개발해야합니다. 사용자가 앞뒤로 이동할 수 있도록 Numeric Pager (숫자 호출기)가있는 페이지 당 한 가지 질문을 표시하고 싶습니다.

질문 및 RadioButton을 표시하기 위해 FormView를 사용해 보았습니다. 나는 그가 총 점수를 합계 할 수 있도록 그가 대답 한 질문에 대해 사용자가 선택한 답변을 보유 할 수있는 QANS 클래스를 만들었습니다.

지금, 내가 직면하고있어 문제는 다음과 같습니다 :

내가 말을하는 PageIndex에, R 말할 사용자가의 RadioButton을 선택할 수 있도록하고 다른 페이지로 이동, K. 말 사용자가 페이지 I로 돌아 오면 아무 RadioButton도 선택되지 않습니다. Page_Load()에서 RadioButton의 Checked 속성을 true로 설정하는 코드를 추가하려고 시도했지만 도움이되지 않았습니다. PageIndexChanged 및 PageIndexChanging 이벤트에서도 동일한 작업을 시도했지만 RadioButton은 확인되지 않았습니다.

특정 질문에 대해 선택된 RadioButton이 저장되었으며 Response.Write()를 사용하여 어느 것이 인쇄되었지만 RadioButton을 유지할 수는 없습니다. 어떻게해야합니까?

답변

1

당신은

+0

감사합니다. 대신 OnPreRenderComplete 메서드를 재정의해야했습니다. –

0

당신은 세션에서 선택한 컨트롤의 상태를 저장하고 왕복 한 후이를 다시 채울 수있는 페이지 수명주기의

protected override void OnPreRender(EventArgs e) 

이벤트 체크 라디오 버튼을 만들 수 있어야 .

포스트 백 이후에 상태가 사라지는 것은 이상한 일입니다. on_load 또는 pageIndexChanging 같은 코드가 있습니까?

0

내가 이해 한대로, 당신은 pageindexes에 걸쳐 radiobutton의 체크 된 상태를 유지해야한다. 페이지의 포스트 백간에 데이터를 유지할 수있는 ViewState를 사용할 수 있습니다. 이 같은

뭔가 : - // 질문 ID의 목록을 정의

는 목록 questionIdsAttempted을 시도;

// (의 ViewState [ "QuestionIdsAttempted"]! = null이) { questionIdsAttempted = 새 목록() 의 ViewState [ "QuestionIdsAttempted은"] = 을 questionIdsAttempted} 경우의 ViewState 에 목록을 추가

// 사용자가 질문을 할 때 질문 ID를 목록에 추가하십시오. questionIdsAttempted.Add (qId);

// = viewstate가 의 ViewState [ "QuestionIdsAttempted"] 다시 목록을 추가

을 questionIdsAttempted 그리고 라디오 버튼의 선택 속성에 페이지로드, 당신은 현재의 문제 ID와 가진 함수를 호출 할 수 있습니다 함수는 viewstate에서 목록을 가져오고 목록에 ID가 있는지에 따라 true 또는 false를 반환합니다.

물론, 프로그램의 흐름에 따라 다양한 위치에서 viewstate의 Null 허용 여부를 확인해야합니다.

나에게 알리기