онлайн-викторина с использованием ASP точка NET - PullRequest
1 голос
/ 13 марта 2010

Hii,

Мне нужно разработать веб-сайт для викторины, в котором будут MCQ. Я хотел бы, чтобы один вопрос появлялся на странице с помощью числового пейджера, чтобы пользователь мог переходить туда-сюда.

Я попытался использовать FormView для отображения вопросов и кнопок RadioButton. Я создал класс QANS, в котором будет храниться ответ, выбранный пользователем для вопросов, на которые он ответил, чтобы впоследствии я мог суммировать общий балл.

Теперь проблема, с которой я сталкиваюсь, следующая:

Позвольте пользователю выбрать RadioButton, скажем, R, на PageIndex, скажем, I, а затем перейти на другую страницу, скажем, K. Когда пользователь возвращается на страницу I, ни одна из RadioButton не выбирается. Я попытался добавить код для установки свойства Checked в RadioButton true в Page_Load (), но это не помогло. Я также пытался сделать то же самое с событиями PageIndexChanged и PageIndexChanging, но RadioButton не проверяется.

RadioButton, выбранный для определенного вопроса, был сохранен, и я могу напечатать, какой из них он использовал Response.Write (), но я не могу оставить RadioButton Checked. Как это сделать?

Ответы [ 4 ]

1 голос
/ 13 марта 2010

Рассматривали ли вы использовать .Net Wizard элемент управления для этого? Мастер ASP.Net 2.0

1 голос
/ 13 марта 2010

Вы должны иметь возможность включить переключатель в событии

protected override void OnPreRender(EventArgs e)

жизненного цикла страницы

0 голосов
/ 13 марта 2010

Из того, что я понимаю, вы должны сохранять проверенное состояние радиокнопки на индексах страницы. Вы можете использовать ViewState для этого, так как это может сохранить данные в постбэках для страницы.

как то так: -

// Определить список попыток идентификаторов вопросов List questionIdsAttempted;

// Добавить список в ViewState если (ViewState [ "QuestionIdsAttempted"]! = NULL) { questionIdsAttempted = новый список () ViewState ["QuestionIdsAttempted"] = questionIdsAttempted }

// Добавить идентификатор вопроса в список, когда пользователь пытается задать вопрос questionIdsAttempted.Add (QID);

// Добавить список обратно в состояние просмотра ViewState ["QuestionIdsAttempted"] = questionIdsAttempted

А при загрузке страницы в проверенном атрибуте радиокнопок вы можете вызвать функцию с идентификатором текущего вопроса, и функция получит список из состояния просмотра и вернет истину или ложь в зависимости от того, существует ли идентификатор в списке.

Конечно, вам нужно проверить обнуляемость состояния просмотра в различных местах на основе потока программы.

Дайте мне знать

0 голосов
/ 13 марта 2010

Вы можете сохранить состояние выбранных элементов управления в сеансе и заполнить их после прохождения туда и обратно.

Странно, что он теряет состояние после обратной передачи. Есть ли в вас сумасшедший код on_load или pageIndexChanging или что-то еще?

...