Глобальные переменные получают значение null на таймер тиков с#
Дорогие Все,
У меня есть одно веб-приложение в ASP.NET с#.
В настоящее время я работаю над отображением вопроса из списка вопросов кандидату.
Я создал хранимую процедуру для получения списка вопросов, который является глобальным переменным.
Private List<QuestionInfo> _questionList; public List<QuestionInfo> QuestionList { get { if(_questionList != null) return _questionList; else _questionList = QuestionDetailsController.Instance.ExamQuestionsGetRandomly(Module.TotalQuestions, QuestionLanguageID, PracticeModuleID).Select(item => item.Question).ToList(); return _questionList; } }
Что я уже пробовал:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindQuestion(_questionNumber); Timer1.Enabled = true; } }
protected void BindQuestion(int nthQuestion) { if (nthQuestion <= QuestionList.Count()) { QuestionInfo CurrentQuestion = QuestionList.ElementAt(nthQuestion); if (CurrentQuestion != null) { lblNoOfQuestions.Text = string.Format("Question {0} of {1}", nthQuestion + 1, ExamQuestion.QuestionList.Count()); lblQuestionText.Text = CurrentQuestion.QuestionDetails.First().Details.Text.QuestionText; } } }
Я использую Ajax UpdatePanel & Timer(для отображения оставшегося времени).
У меня есть три кнопки, как предыдущий, пауза, следующий.
Всякий раз, когда я нажимаю кнопку Previous или Next, глобальная переменная также получает null & on timer_tick event.
Как я могу остановить глобальные переменные, чтобы не получить null, при нажатии на следующий, предыдущий(кнопки) или TimerEvent.
Кто-нибудь может пожалуйста помочь мне.
Заранее спасибо
phil.o
Не имеет отношения к вашему вопросу, но в BindQuestion
метод, ваш тест должен быть if (nthQuestion > -1 && nthQuestion < QuestionList.Count())
На данный момент, если nthQuestion равен количеству коллекций, вы получите исключение index out of bounds.
И вы можете попытаться сделать свой список статической переменной (и свойством).
abdul subhan mohammed
Дорогой Фил,
На самом деле, всякий раз, когда я нажимаю кнопку "Далее" или "предыдущий", я получаю новый список вопросов. Где, как я хочу использовать тот же список вопросов, но не новый, на каждом клике.