protected void Page_Load(object sender, EventArgs e) { try { if (!this.CheckPage()) return; service.Open(); Dictionary<Question, AnswerMapTitle> questionSV = service.getQuestion(this.page); AddForm form = new AddForm("panel-body"); ViewState["Page"] = this.page; int i = 1; int questionId = 0; StringBuilder strSeq = new StringBuilder(); if (Session["answer"] != null) { sess = Session["answer"] as Dictionary<string, string>; } if (questionSV.Count > 0) { if (questionSV.First().Key.Seq <= 33) { Label1.Text = "ส่วนที่ 1 : ชุดคำถามหลัก"; } else { Label1.Text = "ส่วนที่ 2: ชุดคำถามเพิ่มเติม"; } } foreach (KeyValuePair<Question, AnswerMapTitle> q in questionSV) { Question question = q.Key; AnswerMapTitle map = q.Value; string remark = ""; if (q.Value.remark != null) { remark = "<div class='panel panel-primary'>" + "<div class='panel-body'>" + "<div class='row'>" + "<div class='col-sm-1'>" + "<div style='font-weight:bold;'>หมายเหตุ</div>" + "</div>" + "<div class='col-sm-11'>" + q.Value.remark.RemarkDetail + "</div></div></div></div>"; } if (!question.Type.Equals("SLIDE") && !question.Type.Equals("TABLESEQUENE")) { if (q.Value.remark != null) { if (q.Value.remark.UpDown.ToString().Equals("Y")) { form.Controls.Add(new LiteralControl(remark)); } } if (question.QuestionId == 22) { foreach (var isess in sess) { if (isess.Key.ToUpper().IndexOf("QPROD1_C") != -1) { if (!string.IsNullOrEmpty(isess.Value)) { if (Convert.ToInt32(isess.Value) > 0) { question.Visible = "Y"; } } } } } if (question.QuestionId == 1046 || question.QuestionId == 1047 || question.QuestionId == 1048 || question.QuestionId == 1049) { if (sess.ContainsKey("Qprod1_b_18") || sess.ContainsKey("Qprod1_b_19")) { question.Visible = "Y"; } } form.Controls.Add(new LiteralControl("<div id='num-" + question.QuestionId + "' class='num-cl' type-div='" + question.Type + "'" + (question.Visible.Equals("Y") ? "" : "style='display:none;'") + ">")); form.Controls.Add(new LiteralControl("<label>" + question.Seq + ". " + question.QuestionName + "</label>")); if(!string.IsNullOrEmpty(remark)) { if (q.Value.remark.UpDown.ToString().Equals("N")) { form.Controls.Add(new LiteralControl(remark)); } } } strSeq.Append(question.Seq).Append(","); List<ListItem> listItem = new List<ListItem>(); int cntVal = map.ListAns.Length; if (question.Type.Equals("CHECKBOX")) { HiddenField hid = new HiddenField(); hid.Value = question.No; form.Controls.Add(hid); foreach (Answer ans in map.ListAns) { if (string.IsNullOrEmpty(ans.Script)) { form.AddCheckbox(ans.AnswerName, ans.Point.ToString(), ans.SubAnswer, getValueSessCheckbox(ans)); } else { form.AddCheckbox(ans.AnswerName, ans.Point.ToString(), ans.SubAnswer, ans.Script, getValueSessCheckbox(ans)); } } } else if (question.Type.Equals("RADIO")) { foreach (Answer ans in map.ListAns) { form.AddRadio(ans.AnswerName, ans.VarId); } } else if (question.Type.Equals("RADIOLIST")) { int j = 1; string index = ""; foreach (Answer ans in map.ListAns) { ListItem Litem = new ListItem(); if (ans.SubAnswer != null) { switch (ans.SubAnswer.SubAnswerType) { case "TEXTBOX": string valsub = (sess.ContainsKey(ans.SubAnswer.SubVarId)) ? sess[ans.SubAnswer.SubVarId].ToString() : ""; string scriptsub = (ans.SubAnswer.Script != null) ? "onkeyup='" + ans.SubAnswer.Script + "'" : ""; Litem.Text = ans.AnswerName + " (" + ans.SubAnswer.SubAnswerName + " <input type='text' id='" + ans.SubAnswer.SubVarId + "' value='" + valsub + "'name='" + ans.SubAnswer.SubVarId + "' " + scriptsub + "> )"; break; } } else { Litem.Text = ans.AnswerName; } Litem.Value = ans.Point.ToString(); listItem.Add(Litem); if (sess.ContainsKey(ans.VarId)) { if(!string.IsNullOrEmpty(sess[ans.VarId])) { if(Convert.ToInt32(sess[ans.VarId]) == ans.Point) { index = (j - 1).ToString(); } } } if (cntVal == j) { if (string.IsNullOrEmpty(ans.Script)) { form.AddRadioList(listItem, ans.VarId, index); } else { form.AddRadioList(listItem, ans.VarId, ans.Script, index); } } j++; } } else if (question.Type.Equals("TEXTBOX")) { foreach (Answer ans in map.ListAns) { string valtext = ""; if (sess.ContainsKey(ans.VarId)) { valtext = sess[ans.VarId].ToString(); } if (string.IsNullOrEmpty(ans.Script)) { form.AddTextbox(ans.VarId, ans.CssClass, valtext); } else { form.AddTextbox(ans.VarId, ans.CssClass, ans.Script, valtext); } } } else if (question.Type.Equals("DROPDOWNANDRADIOLIST")) { int j = 1; string index = ""; foreach (Answer ans in map.ListAns) { if (ans.AnswerType.Equals("DROPDOWN")) { Item[] dropdown = service.getDropdown(ans.AnswerName); string selected = ""; if (sess.ContainsKey(ans.VarId)) { int k = 0; foreach (Item it in dropdown) { if (it.value.Equals(sess[ans.VarId])) { selected = k.ToString(); } k++; } } form.AddDropDown(dropdown, "col-sm-3", ans.Script, selected); } else { int p = 0; ListItem item = new ListItem(); item.Text = ans.AnswerName; item.Value = ans.Point.ToString(); listItem.Add(item); if (sess.ContainsKey(ans.VarId)) { if (!string.IsNullOrEmpty(sess[ans.VarId])) { if (Convert.ToInt32(sess[ans.VarId]) == ans.Point) { index = p.ToString(); } } } p++; if (cntVal == j) { if (string.IsNullOrEmpty(ans.Script)) { form.AddRadioList(listItem, ans.VarId, index); } else { form.AddRadioList(listItem, ans.VarId, ans.Script, index); } } } j++; } } else if (question.Type.Equals("TEXTBOXANDRADIOLIST")) { int j = 1; string index = ""; int k = 0; foreach (Answer ans in map.ListAns) { if (ans.AnswerType.Equals("TEXTBOX")) { string valtext = ""; if (sess.ContainsKey(ans.VarId)) { valtext = sess[ans.VarId].ToString(); } if (string.IsNullOrEmpty(ans.Script)) { form.AddTextbox(ans.VarId, ans.CssClass, valtext); } else { form.AddTextbox(ans.VarId, ans.CssClass, ans.Script, valtext); } } else { ListItem item = new ListItem(); item.Text = ans.AnswerName; item.Value = ans.Point.ToString(); listItem.Add(item); if (sess.ContainsKey(ans.VarId)) { if (!string.IsNullOrEmpty(sess[ans.VarId])) { if (Convert.ToInt32(sess[ans.VarId]) == ans.Point) { index = k.ToString(); } } } if (cntVal == j) { if (string.IsNullOrEmpty(ans.Script)) { form.AddRadioList(listItem, ans.VarId, index); } else { form.AddRadioList(listItem, ans.VarId, ans.Script, index); } } k++; } j++; } } else if (question.Type.Equals("TABLE")) { string table = ""; table += "<div class='row'>"; table += "<div class='" + question.CssClass + "'>"; switch (question.QuestionId) { case 24: case 1033: table += "<table class='table table-bordered'>"; table += "<thead>"; table += "<tr>"; table += "<th></th>"; table += "<th>เห็นด้วยอย่างมาก</th>"; table += "<th>เห็นด้วย</th>"; table += "<th>ปานกลาง</th>"; table += "<th>ไม่เห็นด้วย</th>"; table += "<th>ไม่เห็นด้วยอย่างมาก</th>"; table += "<th align='center'>ไม่ทราบ</th>"; table += "</tr>"; table += "<tbody>"; foreach (Answer ans in map.ListAns) { string select_1 = "", select_2 = "", select_3 = "", select_4 = "", select_5 = "", select_97 = ""; if (sess.ContainsKey(ans.VarId)) { if (sess[ans.VarId].ToString() != "") { if (sess[ans.VarId].ToString().Equals("1")) { select_1 = "checked"; } else if (sess[ans.VarId].ToString().Equals("2")) { select_2 = "checked"; } else if (sess[ans.VarId].ToString().Equals("3")) { select_3 = "checked"; } else if (sess[ans.VarId].ToString().Equals("4")) { select_4 = "checked"; } else if (sess[ans.VarId].ToString().Equals("5")) { select_5 = "checked"; } else if (sess[ans.VarId].ToString().Equals("-97")) { select_97 = "checked"; } } } table += "<tr>"; table += "<td class='pointer' data-name='" + ans.VarId + "'>" + ans.AnswerName + "</td>"; table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='1' " + select_1 + "></td>"; table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='2' " + select_2 + "></td>"; table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='3' " + select_3 + "></td>"; table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='4' " + select_4 + "></td>"; table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='5' " + select_5 + "></td>"; table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='-97' " + select_97 + "></td>"; table += "</tr>"; } table += "</tbody>"; table += "</table>"; break; case 1027: case 1028: table += "<table class='table table-bordered'>"; table += "<thead>"; table += "<tr>"; table += "<th></th>"; table += "<th align='center'>ถูกต้อง</th>"; table += "<th align='center'>ไม่ถูกต้อง</th>"; table += "<th align='center'>ไม่ทราบ</th>"; table += "<th align='center'>ปฏิเสธการตอบ</th>"; table += "</tr>"; table += "<tbody>"; foreach (Answer ans in map.ListAns) { string select_1 = "", select_0 = "", select_97 = "", select_99 = ""; if (sess.ContainsKey(ans.VarId)) { if (sess[ans.VarId].ToString() != "") { if (sess[ans.VarId].ToString().Equals("1")) { select_1 = "checked"; } else if (sess[ans.VarId].ToString().Equals("0")) { select_0 = "checked"; } else if (sess[ans.VarId].ToString().Equals("-97")) { select_97 = "checked"; } else if (sess[ans.VarId].ToString().Equals("-99")) { select_99 = "checked"; } } } table += "<tr>"; table += "<td class='pointer' data-name='" + ans.VarId + "'>" + ans.AnswerName + "</td>"; table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='1' " + select_1 + "></td>"; table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='0' " + select_0 + "></td>"; table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='-97' " + select_97 + "></td>"; table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='-99' " + select_99 + "></td>"; table += "</tr>"; } table += "</tbody>"; table += "</table>"; break; } table += "</div>"; table += "</div>"; form.Controls.Add(new LiteralControl(table)); } else if (question.Type.Equals("YESORNO")) { string table = ""; table += "<div class='row'>"; table += "<div class='" + question.CssClass + "'>"; table += "<table class='table table-bordered'>"; table += "<thead>"; table += "<tr>"; table += "<th style='width:70px;text-align:center;'>ใช่/ไม่ใช่</th>"; table += "<th></th>"; table += "</tr>"; table += "</thead>"; table += "<tbody>"; int j = 0; if (map.ListTitle.Length > 0) { Dictionary<TitleAnswer, List<Answer>> tmp = arrTitleAnswer(map); foreach (var item in tmp) { table += "<tr><th></th><th colspan='2'>" + item.Key.TiTleName + "</th></tr>"; foreach (Answer ans in item.Value) { table += "<tr class='pointer' data-name='" + ans.VarId + "' data-num='" + ans.QuestionId + "'>"; string check = ""; if (sess.ContainsKey(ans.VarId)) { if (!string.IsNullOrEmpty(sess[ans.VarId]) && sess[ans.VarId].ToString() != "0") { check = "checked"; } } table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='" + ans.Point + "' " + check + "></td>"; if (ans.SubAnswer != null) { string valsub = (sess.ContainsKey(ans.SubAnswer.SubVarId)) ? sess[ans.SubAnswer.SubVarId].ToString() : ""; string scriptsub = (ans.SubAnswer.Script != null) ? "onkeyup='" + ans.SubAnswer.Script + "'" : ""; table += "<td>" + ans.AnswerName + " (" + ans.SubAnswer.SubAnswerName + " <input type='text' id='" + ans.SubAnswer.SubVarId + "' value='" + valsub + "' name='" + ans.SubAnswer.SubVarId + "' " + scriptsub + "> )</td>"; } else { table += "<td>" + ans.AnswerName + "</td>"; } table += "</tr>"; j++; } } } else { foreach (Answer ans in map.ListAns) { table += "<tr class='pointer' data-name='" + ans.VarId + "'>"; string check = ""; if (sess.ContainsKey(ans.VarId)) { if (!string.IsNullOrEmpty(sess[ans.VarId]) && sess[ans.VarId].ToString() != "0") { check = "checked"; } } table += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='" + ans.Point + "' " + check + "></td>"; if (ans.SubAnswer != null) { string valsub = (sess.ContainsKey(ans.SubAnswer.SubVarId)) ? sess[ans.SubAnswer.SubVarId].ToString() : ""; string scriptsub = (ans.SubAnswer.Script != null) ? "onkeyup='" + ans.SubAnswer.Script + "'" : ""; table += "<td>" + ans.AnswerName + " (" + ans.SubAnswer.SubAnswerName + " <input type='text' id='" + ans.SubAnswer.SubVarId + "' value='" + valsub + "' name='" + ans.SubAnswer.SubVarId + "' " + scriptsub + "'> )</td>"; } else { table += "<td>" + ans.AnswerName + "</td>"; } table += "</tr>"; } } table += "</tbody>"; table += "</table>"; table += "</div>"; table += "</div>"; form.Controls.Add(new LiteralControl(table)); } else if (question.Type.Equals("SLIDE")) { Dictionary<string, int> quesionNameForSlideDefault = new Dictionary<string, int>(); string str = ""; str += "<div class='row' id='row-slide'>"; str += "<div id='num-" + question.QuestionId + "' class='num-cl' type-div='" + question.Type + "'" + (question.Visible.Equals("Y") ? "" : "style='display:none;") + "'>"; str += "<div class='" + question.CssClass + "'>"; str += "<div id='slider' class='form'>"; str += remark; str += "<div data-id='slider" + question.QuestionId + "'>"; str += "<label>" + question.Seq + ". " + question.QuestionName + "</label>"; str += "<table class='table table-bordered'>"; str += "<thead><tr>"; str += "<th style='width:70px;text-align:center;'>ใช่/ไม่ใช่</th>"; str += "<th></th>"; str += "</tr></thead>"; str += "<tbody>"; foreach (Answer ans in map.ListAns) { string check = ""; if (question.QuestionId == 1051 || question.QuestionId == 1052 || question.QuestionId == 1053) { if (sess.ContainsKey("Qprod1_a_" + ans.Seq)) { if (!sess["Qprod1_a_" + ans.Seq].ToString().Equals("0")) { str += "<tr class='pointer' data-name='" + ans.VarId + "' data-num='" + ans.QuestionId + "'>"; if (sess.ContainsKey(ans.VarId)) { if (!string.IsNullOrEmpty(sess[ans.VarId]) && sess[ans.VarId].ToString() != "0") { check = "checked"; } } str += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='" + ans.Point + "' " + check + " ></td>"; if (ans.SubAnswer != null) { string valsub = (sess.ContainsKey("Qprod1_a_20_txt")) ? sess["Qprod1_a_20_txt"] : ""; valsub = (sess.ContainsKey(ans.SubAnswer.SubVarId)) ? sess[ans.SubAnswer.SubVarId].ToString() : valsub; string scriptsub = (ans.SubAnswer.Script != null) ? "onkeyup='" + ans.SubAnswer.Script + "'" : ""; str += "<td>" + ans.AnswerName + " (" + ans.SubAnswer.SubAnswerName + " <input type='text' id='" + ans.SubAnswer.SubVarId + "' value='" + valsub + "' name='" + ans.SubAnswer.SubVarId + "' " + scriptsub + "'> )</td>"; } else { str += "<td>" + ans.AnswerName + "</td>"; } str += "</tr>"; } } else { if (ans.Point == -98) { str += "<tr class='pointer' data-name='" + ans.VarId + "' data-num='" + ans.QuestionId + "'>"; if (sess.ContainsKey(ans.VarId)) { if (!string.IsNullOrEmpty(sess[ans.VarId]) && sess[ans.VarId].ToString() != "0") { check = "checked"; } } str += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='" + ans.Point + "' " + check + "></td>"; if (ans.SubAnswer != null) { string valsub = (sess.ContainsKey(ans.SubAnswer.SubVarId)) ? sess[ans.SubAnswer.SubVarId].ToString() : ""; string scriptsub = (ans.SubAnswer.Script != null) ? "onkeyup='" + ans.SubAnswer.Script + "'" : ""; str += "<td>" + ans.AnswerName + " (" + ans.SubAnswer.SubAnswerName + " <input type='text' id='" + ans.SubAnswer.SubVarId + "' value='" + valsub + "' name='" + ans.SubAnswer.SubVarId + "' " + scriptsub + "'> )</td>"; } else { str += "<td>" + ans.AnswerName + "</td>"; } str += "</tr>"; } } } else { str += "<tr class='pointer' data-name='" + ans.VarId + "' data-num='" + ans.QuestionId + "'>"; if (sess.ContainsKey(ans.VarId)) { if (!string.IsNullOrEmpty(sess[ans.VarId]) && sess[ans.VarId].ToString() != "0") { check = "checked"; } } str += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='" + ans.Point + "' " + check + "></td>"; if (ans.SubAnswer != null) { string valsub = (sess.ContainsKey(ans.SubAnswer.SubVarId)) ? sess[ans.SubAnswer.SubVarId].ToString() : ""; string scriptsub = (ans.SubAnswer.Script != null) ? "onkeyup='" + ans.SubAnswer.Script + "'" : ""; str += "<td>" + ans.AnswerName + " (" + ans.SubAnswer.SubAnswerName + " <input type='text' id='" + ans.SubAnswer.SubVarId + "' value='" + valsub + "'name='" + ans.SubAnswer.SubVarId + "' " + scriptsub + "'> )</td>"; } else { str += "<td>" + ans.AnswerName + "</td>"; } str += "</tr>"; } } str += "</tbody>"; str += "</table>"; str += "</div>"; str += "</div>"; str += "</div>"; str += "</div>"; str += "</div>"; form.Controls.Add(new LiteralControl(str)); } else if (question.Type.Equals("TABLESEQUENE")) { string str = ""; str += "<div class='row' id='row-sequene'>"; str += "<div id='num-" + question.QuestionId + "' class='num-cl' type-div='" + question.Type + "'" + (question.Visible.Equals("Y") ? "" : "style='display:none;") + "'>"; str += "<div class='" + question.CssClass + "'>"; str += "<div id='slider' class='form'>"; str += "<div data-id='slider" + question.QuestionId + "'>"; str += "<label>" + question.Seq + ". " + question.QuestionName + "</label>"; str += "<table class='table table-bordered'>"; str += "<thead><tr>"; str += "<th style='width:70px;text-align:center;'>ใช่/ไม่ใช่</th>"; str += "<th></th>"; str += "</tr></thead>"; str += "<tbody>"; if (question.QuestionId == 1040) { Dictionary<TitleAnswer, List<Answer>> tmp = arrTitleAnswer(map); foreach (var item in tmp) { str += "<tr><th></th><th colspan='2'>" + item.Key.TiTleName + "</th></tr>"; foreach(Answer ans in item.Value) { str += "<tr class='pointer' data-name='" + ans.VarId + "' data-num='" + ans.QuestionId + "'>"; string check = ""; if (sess.ContainsKey(ans.VarId)) { if (!string.IsNullOrEmpty(sess[ans.VarId]) && sess[ans.VarId].ToString() != "0") { check = "checked"; } } str += "<td align='center'><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='" + ans.Point + "' " + check + "></td>"; if (ans.SubAnswer != null) { string valsub = (sess.ContainsKey(ans.SubAnswer.SubVarId)) ? sess[ans.SubAnswer.SubVarId].ToString() : ""; string scriptsub = (ans.SubAnswer.Script != null) ? "onkeyup='" + ans.SubAnswer.Script + "'" : ""; str += "<td>" + ans.AnswerName + " (" + ans.SubAnswer.SubAnswerName + " <input type='text' id='" + ans.SubAnswer.SubVarId + "' value='" + valsub + "' name='" + ans.SubAnswer.SubVarId + "' " + scriptsub + "'> )</td>"; } else { str += "<td>" + ans.AnswerName + "</td>"; } str += "</tr>"; } } } else if (question.QuestionId == 1041) { int check = 0; foreach (var item in map.ListAns) { string[] x = item.VarId.Split('_'); if (sess.ContainsKey("QA11_" + x.Last())) { if (Convert.ToInt32(sess["QA11_" + x.Last()]) == 1) { check++; if (check > 2) break; } } } Dictionary<TitleAnswer, List<Answer>> tmp = arrTitleAnswer(map); foreach (var item in tmp) { string tmpTitle = "<tr><th></th><th colspan='2'>" + item.Key.TiTleName + "</th></tr>"; string tmpStr = ""; foreach (Answer ans in item.Value) { string[] x = ans.VarId.Split('_'); if (sess.ContainsKey("QA11_" + x.Last())) { if (!string.IsNullOrEmpty(sess["QA11_" + x.Last()])) { if (Convert.ToInt32(sess["QA11_" + x.Last()]) == 1) { tmpStr += "<tr>"; string select_1 = "", select_2 = "", select_3 = ""; if (sess.ContainsKey(ans.VarId)) { if (sess[ans.VarId].ToString() != "0" && sess[ans.VarId].ToString() != "") { if (sess[ans.VarId].ToString().Equals("1")) { select_1 = "selected"; } else if (sess[ans.VarId].ToString().Equals("2")) { select_2 = "selected"; } else if (sess[ans.VarId].ToString().Equals("3")) { select_3 = "selected"; } } } tmpStr += "<td align='center'><select onchange=selectNum('" + question.QuestionId + "',this); id='" + ans.VarId + "' name='" + ans.VarId + "'>"; tmpStr += "<option value=''>-- เลือกลำดับ --</option>"; tmpStr += "<option value='1' " + select_1 + ">1</option>"; tmpStr += "<option value='2' " + select_2 + ">2</option>"; if (check > 2) tmpStr += "<option value='3' " + select_3 + ">3</option>"; tmpStr += "</select>"; tmpStr += "</td>"; if (ans.SubAnswer != null) { string valsub = (sess.ContainsKey(ans.SubAnswer.SubVarId)) ? sess[ans.SubAnswer.SubVarId].ToString() : ""; string scriptsub = (ans.SubAnswer.Script != null) ? "onkeyup='" + ans.SubAnswer.Script + "'" : ""; tmpStr += "<td>" + ans.AnswerName + " (" + ans.SubAnswer.SubAnswerName + " <input type='text' id='" + ans.SubAnswer.SubVarId + "' value='" + valsub + "' name='" + ans.SubAnswer.SubVarId + "' " + scriptsub + "'> )</td>"; } else { tmpStr += "<td>" + ans.AnswerName + "</td>"; } tmpStr += "</tr>"; } } } } if (!string.IsNullOrEmpty(tmpStr)) { str += tmpTitle + tmpStr; } } } str += "</tbody>"; str += "</table>"; str += "</div>"; str += "</div>"; str += "</div>"; str += "</div>"; str += "</div>"; form.Controls.Add(new LiteralControl(str)); } else if (question.Type.Equals("SEQUENE")) { string str = ""; str += "<div class='row'>"; str += "<div class='" + question.CssClass + "'>"; str += "<div id='slider' class='form'>"; str += "<div data-id='slider" + question.QuestionId + "'>"; str += "<table class='table table-bordered'>"; str += "<thead><tr>"; str += "<th></th>"; str += "<th align='center'>ลำดับ</th>"; str += "</tr></thead>"; str += "<tbody>"; foreach (Answer ans in map.ListAns) { str += "<tr>"; if (ans.SubAnswer != null) { string valsub = (sess.ContainsKey(ans.SubAnswer.SubVarId)) ? sess[ans.SubAnswer.SubVarId].ToString() : ""; string scriptsub = (ans.SubAnswer.Script != null) ? "onkeyup='" + ans.SubAnswer.Script + "'" : ""; str += "<td>" + ans.AnswerName + " (" + ans.SubAnswer.SubAnswerName + " <input type='text' id='" + ans.SubAnswer.SubVarId + "' value='" + valsub + "' name='" + ans.SubAnswer.SubVarId + "' " + scriptsub + "'> )</td>"; } else { str += "<td>" + ans.AnswerName + "</td>"; } string select_1 = "", select_2 = "", select_3 = ""; if (sess.ContainsKey(ans.VarId)) { if (sess[ans.VarId].ToString() != "0" && sess[ans.VarId].ToString() != "") { if (sess[ans.VarId].ToString().Equals("1")) { select_1 = "selected"; } else if (sess[ans.VarId].ToString().Equals("2")) { select_2 = "selected"; } else if (sess[ans.VarId].ToString().Equals("3")) { select_3 = "selected"; } } } str += "<td align='center'><select onchange=selectNum('" + question.QuestionId + "',this); id='" + ans.VarId + "' name='" + ans.VarId + "'>"; str += "<option value=''>-- เลือกลำดับ --</option>"; str += "<option value='1' " + select_1 + ">1</option>"; str += "<option value='2' " + select_2 + ">2</option>"; str += "<option value='3' " + select_3 + ">3</option>"; str += "</select>"; str += "</tr>"; } str += "</tbody>"; str += "</table>"; str += "</div>"; str += "</div>"; str += "</div>"; str += "</div>"; form.Controls.Add(new LiteralControl(str)); } else if (question.Type.Equals("FLOW")) { switch (question.QuestionId) { case 9: HiddenField hid = new HiddenField(); hid.Value = question.No; form.Controls.Add(hid); form.Controls.Add(new LiteralControl("<div class='form-group left-15'><label>เลือกพื้นที่จังหวัดของท่าน</label>")); Item[] dropdown = service.getDropdown("PROVINCEGOID"); string selected = ""; if (Session["province"] != null) { int k = 0; foreach (Item it in dropdown) { if (it.value.Equals(Session["province"])) { selected = k.ToString(); } k++; } } form.AddDropDown(dropdown, "col-sm-3", "checkFlow(9,this);", selected); form.Controls.Add(new LiteralControl("</div>")); string str = ""; str += "<div class='form-group left-15'>"; str += "<label>เลือกเขตที่พักอาศัยของท่าน</label>"; str += "<div>"; Dictionary<TitleAnswer, List<Answer>> tmp = arrTitleAnswer(map); string district = ""; if (Session["district"] != null) { district = Session["district"].ToString(); } int p = 1; foreach (var title in tmp) { str += "<label class='radio-inline disabled'>"; if (string.IsNullOrEmpty(district)) { str += "<input type='radio' name='district' value='" + title.Key.Seq + "' disabled> " + title.Key.TiTleName; } else { if (district.Equals(p.ToString())) { str += "<input type='radio' name='district' value='" + title.Key.Seq + "' checked> " + title.Key.TiTleName; } else { if (district.Equals("2") || district.Equals("3")) { if (p == 2 || p == 3) { str += "<input type='radio' name='district' value='" + title.Key.Seq + "'> " + title.Key.TiTleName; } else { str += "<input type='radio' name='district' value='" + title.Key.Seq + "' disabled> " + title.Key.TiTleName; } } else { str += "<input type='radio' name='district' value='" + title.Key.Seq + "' disabled> " + title.Key.TiTleName; } } } p++; str += "</label>"; } str += "</div>"; str += "</div>"; str += "<div class='form-group left-15'>"; str += "<label>เลือกระดับรายได้ของท่าน</label>"; bool chkVar = true; string income = ""; if (sess.ContainsKey(question.No)) { income = sess[question.No]; } p = 1; foreach (var item in tmp) { string display = ""; string check = ""; if (!string.IsNullOrEmpty(district)) { display = (district.Equals(p.ToString())) ? "show" : "hidden"; p++; } else { display = (chkVar) ? "show" : "hidden"; chkVar = false; } int n = 1; foreach (Answer ans in item.Value) { str += "<div class='radio disabled left-15 " + display + "' name='" + ans.VarId + ans.TitleId + "'>"; if (!string.IsNullOrEmpty(district)) { check = (!string.IsNullOrEmpty(income) && display.Equals("show") && income.Equals(n.ToString())) ? "checked" : ""; str += "<label><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='" + ans.Point + "' " + check + ">" + ans.AnswerName + "</label>"; } else { str += "<label><input type='radio' id='" + ans.VarId + "' name='" + ans.VarId + "' value='" + ans.Point + "' disabled>" + ans.AnswerName + "</label>"; } str += "</div>"; n++; } } str += "</div>"; form.Controls.Add(new LiteralControl(str)); break; } } if (!question.Type.Equals("SLIDE") && !question.Type.Equals("TABLESEQUENE")) { form.Controls.Add(new LiteralControl("</div>")); } questionId = q.Key.QuestionId; i++; } int last = service.getLastQuestion(); string button = ""; ViewState["lastFlag"] = false; string percent = service.getPercentage(this.page); string width = (Convert.ToDouble(percent) > 5) ? percent : "5"; if (last == questionId) { button += "<div class='row'>"; button += "<div style='display:table-row;'>"; button += "<div class='prev-block'><input type='button' style='float:left;' value='ก่อนหน้า' class='btn btn-warning' onclick='Back(" + this.page + ");'></div>"; button += "<div class='progress-block'>"; button += "<div class='progress'>"; button += "<div class='progress-bar progress-bar-striped active' aria-valuenow='" + percent + "' aria-valuemin='0' aria-valuemax='100' style='min-width: " + width + "%'>"; button += percent + "%"; button += "</div>"; button += "</div>"; button += "</div>"; button += "<div class='next-block'><input type='button' style='float:right;' value='ส่งคำตอบ' class='btn btn-primary' onclick='saveAnswer();'></div>"; button += "</div>"; button += "</div>"; ViewState["lastFlag"] = true; } else { button += "<div class='row'>"; button += "<div style='display:table-row;'>"; button += "<div class='prev-block'>"; if (this.page > 1) { button += "<input type='button' style='float:left;' value='ก่อนหน้า' class='btn btn-warning' onclick='Back(" + this.page + ");'>"; } button += "</div>"; button += "<div class='progress-block'>"; button += "<div class='progress'>"; button += "<div class='progress-bar progress-bar-striped active' aria-valuenow='" + percent + "' aria-valuemin='0' aria-valuemax='100' style='min-width: " + width + "%'>"; button += percent + "%"; button += "</div>"; button += "</div>"; button += "</div>"; button += "<div class='next-block'><input type='button' style='float:right;' value='ถัดไป' class='btn btn-primary' onclick='sendAnswer(" + this.page + ");'></div>"; button += "</div>"; button += "</div>"; } form.Controls.Add(new LiteralControl(button)); PlaceHolder1.Controls.Add(form); if (strSeq.Length > 0) { string s = strSeq.ToString(); s = s.Substring(0, s.Length - 1); ClientScript.RegisterClientScriptBlock(GetType(), "Javascript", "<script>seq = '" + s + "';\ncurrentPage = " + this.page + ";</script>"); } } catch (Exception ex) { } finally { service.Close(); } }