Pergunta

Hii,

Eu preciso desenvolver um site questionário on-line que seria ter MCQs. Eu gostaria de ter uma pergunta que aparece por página com uma Numérico Pager para que o usuário pode ir para trás e para frente.

Eu tentei usar o FormView para exibir as perguntas e RadioButtons. Eu criei um QANS classe que prendem a resposta selecionada pelo usuário para as perguntas que ele fez resposta para que eu possa depois resumir a pontuação total.

Agora, o problema que estou enfrentando é como abaixo:

permite ao usuário selecionar um RadioButton, dizem R, em um PageIndex, digamos que eu, e depois ir para outra página, diz K. Quando o usuário retorna para a página I, nenhum dos RadioButtons é selecionado. Eu tentei adicionar código para definir a propriedade verificado do RadioButton verdadeiro no Page_Load (), mas isso não ajuda. Eu também tentei o mesmo com o evento PageIndexChanged e PageIndexChanging, mas o RadioButton não ficar marcada.

O RadioButton que foi selecionado para uma determinada questão tenha sido armazenado e eu sou capaz de imprimir qual deles estava usando Response.Write (), mas eu não sou capaz de manter o RadioButton verificado. Como se fará isso?

Foi útil?

Solução

Você deve ser capaz de fazer o botão de opção marcada no

protected override void OnPreRender(EventArgs e)

evento do ciclo de vida página

Outras dicas

Você considerou usando o controle assistente .Net para isso? O Controlo Assistente ASP.Net 2.0

Você pode salvar o estado dos controles selecionados na sessão e repovoar-los após a viagem de volta.

É estranho que ele está perdendo estado após a postagem. Existe algum código de louco em você on_load ou PageIndexChanging ou qualquer coisa?

Pelo que eu entendo, você tem que persistir o estado verificado do radiobutton através das pageindexes. Você pode usar ViewState para que, como que pode preservar dados através de postagens de uma página.

algo assim: -

// Definir uma lista de perguntas ids tentada Lista questionIdsAttempted;

// Adicionar a lista até o ViewState if (ViewState [ "QuestionIdsAttempted"]! = null) { questionIdsAttempted = new List () ViewState [ "QuestionIdsAttempted"] = questionIdsAttempted }

// Adicione o ID de pergunta à lista quando quando o usuário tenta uma pergunta questionIdsAttempted.Add (QID);

// Adicionar a lista de volta para o viewstate ViewState [ "QuestionIdsAttempted"] = questionIdsAttempted

E no carregamento da página no atributo checked dos radiobuttons, você pode chamar uma função com o atual id questão e a função irá obter a lista do viewstate e retorna verdadeiro ou falso baseado em se o id existe na lista.

Claro, você precisa verificar a condição de nulidade do viewstate em vários lugares com base no fluxo do programa.

Deixe-me saber

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top