Ik ben bezig met een enquêtesysteem. In de beheermodule is het voor de gebruiker mogelijk om per vraag 2 of meer antwoordmogelijkheden op te geven en bijbehorend een vervolgvraag.
Ik heb een DropDownList waar ik alle vraagnummers in laat verschijnen en bij het SelectedIndexChanged event laat ik alle eigenschappen van die vraag volledig weergeven op het scherm. Dit gaat allemaal prima behalve de weergave van de juiste vervolgvraag.
Op de pagina is vooraf een Panel met daarin in tabel met 10 keer een row met een TextBox voor de inhoud van de antwoordmogelijk en een DropDownList om het vraagnummer van de vervolgvraag te selecteren.
Het probleem is dat wanneer ik de .SelectedValue property van 1 van de 10 DropDownLists aanpas is dat zij allemaal diezelfde property krijgen. Ik heb werkelijk geen idee waarom. Alle DropDownLists hebben dezelfde ListItems, namelijk alle vragen in de enquête met als Text het volgnummer en als value het vraagnummer. Zij hebben niet hetzelfde ID. (cbxAnswer1, cbxAnswer2, t/m 10)
SelectedIndexChanged Event:
Iemand enig idee wat het kan zijn?
Ik heb een DropDownList waar ik alle vraagnummers in laat verschijnen en bij het SelectedIndexChanged event laat ik alle eigenschappen van die vraag volledig weergeven op het scherm. Dit gaat allemaal prima behalve de weergave van de juiste vervolgvraag.
Op de pagina is vooraf een Panel met daarin in tabel met 10 keer een row met een TextBox voor de inhoud van de antwoordmogelijk en een DropDownList om het vraagnummer van de vervolgvraag te selecteren.
Het probleem is dat wanneer ik de .SelectedValue property van 1 van de 10 DropDownLists aanpas is dat zij allemaal diezelfde property krijgen. Ik heb werkelijk geen idee waarom. Alle DropDownLists hebben dezelfde ListItems, namelijk alle vragen in de enquête met als Text het volgnummer en als value het vraagnummer. Zij hebben niet hetzelfde ID. (cbxAnswer1, cbxAnswer2, t/m 10)
SelectedIndexChanged Event:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| int QuestionId = Convert.ToInt32(dpdQuestions.SelectedValue); // Get the original Question before clearing Question q = new Question(QuestionId); // All neccesary data collected; clear old data from the Form first ClearPnlQuestions(); // Set the QuestionId value again dpdQuestions.SelectedValue = QuestionId.ToString(); // Set txtQuestionContent.Text = q.QuestionContent; rbtnQuestionType.SelectedValue = q.QuestionType.ToString(); // Prepare the Panel, enables the right amount of TextBoxes PrepareQuestionAnswerOptionForm(); // Get all Controls in an Array to set when necessary // Sequence: List<DropDownList> cbxList = new List<DropDownList>(); cbxList.Add(cbxAnswer1); cbxList.Add(cbxAnswer2); cbxList.Add(cbxAnswer3); cbxList.Add(cbxAnswer4); cbxList.Add(cbxAnswer5); cbxList.Add(cbxAnswer6); cbxList.Add(cbxAnswer7); cbxList.Add(cbxAnswer8); cbxList.Add(cbxAnswer9); cbxList.Add(cbxAnswer10); // Content: List<TextBox> txtList = new List<TextBox>(); txtList.Add(AnswerTextBox1); txtList.Add(AnswerTextBox2); txtList.Add(AnswerTextBox3); txtList.Add(AnswerTextBox4); txtList.Add(AnswerTextBox5); txtList.Add(AnswerTextBox6); txtList.Add(AnswerTextBox7); txtList.Add(AnswerTextBox8); txtList.Add(AnswerTextBox9); txtList.Add(AnswerTextBox10); // Add QuestionAnswerOptions for (int i = 0; i < q.QuestionAnswerOptions.Count; i++) { // Set Content txtList[i].Text = q.QuestionAnswerOptions[i].AnswerContent; if (q.QuestionAnswerOptions[i].NextQuestion != 0) { // Get the follow-up Question object Question next = Data.GetQuestionByQuestionId(q.QuestionAnswerOptions[i].NextQuestion); // Select the value cbxList[i].SelectedValue = Convert.ToString(next.QuestionId); // At this point all DropDownLists in cbxList have the same properties which should be the DropDownList at index i only. } else // No Next question specified { // Select the "End Survey" option cbxList[i].SelectedValue = "end"; } } |
Iemand enig idee wat het kan zijn?