private bool fillquestion()//Hämtar frågorna { Classes.clsFillQuestion clFill = new Classes.clsFillQuestion(); try { rbQuestionList.DataTextField = "name"; rbQuestionList.DataValueField = "id"; rbQuestionList.DataSource = clFill.readXML(cmbChooseQue.SelectedValue.ToString(), Server.MapPath("~/questions.xml")); rbQuestionList.DataBind(); } catch (Exception ex) { Label1.Text = ex.ToString(); } return true; }
/// <summary> /// Lägger till varje fråga i paneln och visar om man har svarat rätt eller fel. /// </summary> /// <param name="queID"></param> /// <param name="ttID"></param> private void fillData(string queID, string ttID) { clsFillQuestion quest = new clsFillQuestion(); Tuple<DataTable, string, int, string, string> Que = quest.readXML(queID, ttID); DataTable dt = Que.Item1; Label lbN = new Label(); string img = ""; if (Que.Item5 != null) { img = "<img src='pictures/" + Que.Item5 + "' style='height: 150px; width: 150px;'alt='bilden' />"; } lbN.ID = "QUEST_" + queID; lbN.Text = "<h5>" + Que.Item2 + "</h5> " + img + "<br />"; panData.Controls.Add(lbN); int many = 0; for (int i = 0; i < Que.Item1.Rows.Count; i++) { if (Que.Item1.Rows[i]["answ"].ToString().ToUpper() == "TRUE") { many += 1; } } if (many > 1) //Om det finns flera valmöjligheter så sätter vi ut en checkboxliist { CheckBoxList li = new CheckBoxList(); li.ID = queID; li.DataTextField = "name"; li.DataValueField = "id"; li.DataSource = dt; li.DataBind(); li.Enabled = false; for (int i = 0; i < dt.Rows.Count; i++) //KRyssar i de som redan användaren har kryssat i { int val = 0; if (dt.Rows[i]["sel"].ToString().ToUpper() == "TRUE") { if (int.TryParse(dt.Rows[i]["id"].ToString(), out val)) { li.Items.FindByValue(val.ToString()).Selected = true; //Sätter alla som finns till true så att den kan vara multippella li.Items.FindByValue(val.ToString()).Attributes.Add("style", "border: 2px solid red;"); } val = 0; } if (dt.Rows[i]["answ"].ToString().ToUpper() == "TRUE") { if (int.TryParse(dt.Rows[i]["id"].ToString(), out val)) { li.Items.FindByValue(val.ToString()).Attributes.Add("style", "border: 2px solid green;"); //= System.Drawing.Color.Green; //Sätter alla som finns till true så att den kan vara multippella } val = 0; } } panData.Controls.Add(li); } else { RadioButtonList li = new RadioButtonList(); li.ID = queID; li.DataTextField = "name"; li.DataValueField = "id"; li.DataSource = Que.Item1; li.DataBind(); li.Enabled = false; for (int i = 0; i < dt.Rows.Count; i++) { int val = 0; if (dt.Rows[i]["sel"].ToString().ToUpper() == "TRUE") { if (int.TryParse(dt.Rows[i]["id"].ToString(), out val)) { li.SelectedValue = val.ToString(); li.Items.FindByValue(val.ToString()).Attributes.Add("style", "border: 2px solid red;"); } } if (dt.Rows[i]["answ"].ToString().ToUpper() == "TRUE") //Om man vill kolla på frågorna igen så markeras den grön om det är okej { if (int.TryParse(dt.Rows[i]["id"].ToString(), out val)) { li.Items.FindByValue(val.ToString()).Attributes.Add("style", "border: 2px solid green;"); } } } panData.Controls.Add(li); } }
//Hämtar frågorna /// <summary> /// Laddar in frågorna i antingen checboxlist eller radiobuttonlist /// </summary> /// <returns></returns> private bool fillquestion() { Label1.Text = "Du är på fråga: <b>" + cmbChooseQue.SelectedItem.Text + " av " + cmbChooseQue.Items.Count.ToString() + " frågor </b>"; Classes.clsFillQuestion clFill = new Classes.clsFillQuestion(); Tuple<DataTable, string, int, string, string> getData = clFill.readXML(cmbChooseQue.SelectedValue.ToString(), testID); DataTable dt = getData.Item1; int antVal = getData.Item3; bool lookAgain = false; string part = getData.Item4.ToUpper(); if (HttpContext.Current.Session["seeTest"] != null) { lookAgain = bool.Parse(HttpContext.Current.Session["seeTest"].ToString()); if (lookAgain) //Om man vill titta igen får man inte kryssa i något { rbQuestionList.Enabled = false; chkQuestionList.Enabled = false; } } if (part == "ETIK") { part = " Etik och regelverk"; } else if(part == "EKONOMI") { part = " Ekonomi – nationalekonomi, finansiell ekonomi och privatekonomi."; } else if (part == "PRODUKTER") { part = " Produkter och hantering av kundens affärer "; } Label3.Text = "Frågan är inom området: <b>" + part + "</b> <br />" + "<h4>" + getData.Item2 + "</h4>"; ViewState.Add("antQue", antVal.ToString()); lblChoose.Text = " Du ska välja: <b>" + antVal.ToString() + "</b> svar"; if (getData.Item5 != "") { Label2.Text = "<img src='pictures/" + getData.Item5 + "' style='height: 250px; width: 250px;'alt='bilden' />"; } else { Label2.Text = ""; } try { int sumCheck = 0; chkQuestionList.DataSource = null; chkQuestionList.DataBind(); rbQuestionList.DataSource = null; rbQuestionList.DataBind(); for (int i = 0; i < dt.Rows.Count; i++) //Kollar om det finns flera som går att välja { if (dt.Rows[i]["answ"].ToString().ToUpper() == "TRUE") { sumCheck += 1; } } if (sumCheck > 1)//Om det finns flera val att välja på visas den listan { btnNext.OnClientClick = "return userValid('chkQuestionList', '" + antVal + "');"; btnPrevious.OnClientClick = "return userValid('chkQuestionList', '" + antVal + "');"; rbQuestionList.Visible = false; chkQuestionList.Visible = true; chkQuestionList.DataTextField = "name"; chkQuestionList.DataValueField = "id"; chkQuestionList.DataSource = dt; chkQuestionList.DataBind(); for (int i = 0; i < dt.Rows.Count; i++) //KRyssar i de som redan användaren har kryssat i { int val = 0; if (dt.Rows[i]["sel"].ToString().ToUpper() == "TRUE") { if (int.TryParse(dt.Rows[i]["id"].ToString(), out val)) { chkQuestionList.Items.FindByValue(val.ToString()).Selected = true; //Sätter alla som finns till true så att den kan vara multippella } val = 0; } //if (dt.Rows[i]["answ"].ToString().ToUpper() == "TRUE" ) //{ // if (int.TryParse(dt.Rows[i]["id"].ToString(), out val)) // { // chkQuestionList.Items.FindByValue(val.ToString()).Attributes.Add("style", "background-color: green;"); //= System.Drawing.Color.Green; //Sätter alla som finns till true så att den kan vara multippella // } // val = 0; //} } } else //Om det är ett val så kommer man till en radiobuttonlist { btnNext.OnClientClick = "return userValid('rbQuestionList', '" + antVal + "');"; btnPrevious.OnClientClick = "return userValid('rbQuestionList', '" + antVal + "');"; rbQuestionList.Visible = true; chkQuestionList.Visible = false; rbQuestionList.DataTextField = "name"; rbQuestionList.DataValueField = "id"; rbQuestionList.DataSource = dt; rbQuestionList.DataBind(); for (int i = 0; i < dt.Rows.Count; i++) { int val = 0; if (dt.Rows[i]["sel"].ToString().ToUpper() == "TRUE") { if (int.TryParse(dt.Rows[i]["id"].ToString(), out val)) { rbQuestionList.SelectedValue = val.ToString(); } } //if (dt.Rows[i]["answ"].ToString().ToUpper() == "TRUE" ) //Om man vill kolla på frågorna igen så markeras den grön om det är okej //{ // if (int.TryParse(dt.Rows[i]["id"].ToString(), out val)) // { // rbQuestionList.Items.FindByValue(val.ToString()).Attributes.Add("style", "background-color: green;"); // } //} } } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } return true; }