public static string GetTestViewHTML(试卷内容 c试卷内容, string sKey, bool isShowTitle) { string sHtml = "", sHtml试题 = ""; 序号对象类 序号对象 = new 序号对象类(); if (isShowTitle) { sHtml += "<div style=\"font-family:Verdana, Arial,宋体, Sans-Serif, Helvetica;font-size:14px;\">"; sHtml += "<div style=\"text-align:center;\">" + "<div class=\"ViewTest_I_H_Title\" style=\"font-size:30px;font-weight:bold;\">" + c试卷内容.名称 + "</div>" + "<div class=\"ViewTest_I_H_Count\">总分:" + c试卷内容.总分 + "</div>" + "</div>"; } foreach (试卷中大题 题型 in c试卷内容.试卷中大题集合) { sHtml试题 = ""; foreach (试卷大题中试题 试题 in 题型.试卷大题中试题集合) { if (sKey != "1") { sHtml试题 += ViewSubject.getMarkItem(试题, 序号对象, 0, false, false); } else { sHtml试题 += ViewSubject.getMarkItem(试题, 序号对象, 0, false, true); } } sHtml += "<div class=\"ViewTestContent\">"; sHtml += "<div class=\"C_E_L_I_C_R_C_Title\">" + "<div class=\"C_E_L_I_C_R_C_T_SubType\"><b>" + 题型.名称 + "</b></div>" + "<div class=\"C_E_L_I_C_R_C_T_Explain\">说明:" + 题型.说明 + "</div>" + "</div>"; sHtml += "<div class=\"C_E_L_I_C_R_C_Content\" >" + "<div class=\"C_E_L_I_C_R_C_Font\">" + sHtml试题 + "</div>" + "</div>"; sHtml += "</div>"; } if (isShowTitle) { sHtml += "</div>"; } return sHtml; }
public static string getMarkItem(试卷大题中试题 试题, 序号对象类 序号对象, int 子小题序号, bool 是否为小题, bool 是否显示答案) { string htmlHead = "", htmlCont = "", htmlFoot = ""; bool 是否为父级 = false; int 小题型Enum = 试题内容.得到试题的小题型(试题.试题内容Json); switch (小题型Enum) { case 11: { 试题.试题内容 = 单选题.把Json转化成试题内容(试题.试题内容Json); 单选题 T11 = (单选题)试题.试题内容; htmlHead += ViewLibHeader.getNormal(T11.题干HTML, T11.试题外部信息ID, 试题.每小题分值, 序号对象, 子小题序号, false, 是否为小题); htmlCont += ViewLibContent.getT11(T11.选项列表); htmlFoot += ViewLibKeyResolu.getT11(T11, 是否显示答案); } break; case 12: { 试题.试题内容 = 多选题.把Json转化成试题内容(试题.试题内容Json); 多选题 T12 = (多选题)试题.试题内容; htmlHead += ViewLibHeader.getNormal(T12.题干HTML, T12.试题外部信息ID, 试题.每小题分值, 序号对象, 子小题序号, false, 是否为小题); htmlCont += ViewLibContent.getT12(T12.选项列表); htmlFoot += ViewLibKeyResolu.getT12(T12, 是否显示答案); } break; case 13: { 试题.试题内容 = 填空题.把Json转化成试题内容(试题.试题内容Json); 填空题 T13 = (填空题)试题.试题内容; htmlHead += ViewLibHeader.getT13(T13.题干HTML, T13.试题外部信息ID, 试题.每小题分值, 序号对象, 子小题序号, false, 是否为小题); htmlFoot += ViewLibKeyResolu.getT13(T13, 是否显示答案); } break; case 14: { 试题.试题内容 = 选词填空.把Json转化成试题内容(试题.试题内容Json); 选词填空 T14 = (选词填空)试题.试题内容; htmlHead += ViewLibHeader.getT14(T14.题干HTML, T14.试题外部信息ID, 试题.每小题分值, 序号对象, 子小题序号, false, 是否为小题); htmlCont += ViewLibContent.getT14(T14.选项组.选项集合); htmlFoot += ViewLibKeyResolu.getT14(T14, 是否显示答案); } break; case 15: { 试题.试题内容 = 完形填空.把Json转化成试题内容(试题.试题内容Json); 完形填空 T15 = (完形填空)试题.试题内容; htmlHead += ViewLibHeader.getT15(T15.题干HTML, T15.试题外部信息ID, 试题.每小题分值, 序号对象, 子小题序号, false, 是否为小题); htmlCont += ViewLibContent.getT15(T15.单选空格集合); htmlFoot += ViewLibKeyResolu.getT15(T15, 是否显示答案); } break; case 20: { 试题.试题内容 = 判断题.把Json转化成试题内容(试题.试题内容Json); 判断题 T20 = (判断题)试题.试题内容; htmlHead += ViewLibHeader.getNormal(T20.题干HTML, T20.试题外部信息ID, 试题.每小题分值, 序号对象, 子小题序号, false, 是否为小题); htmlCont += ViewLibContent.getT20(); htmlFoot += ViewLibKeyResolu.getT20(T20, 是否显示答案); } break; case 30: { 试题.试题内容 = 连线题.把Json转化成试题内容(试题.试题内容Json); 连线题 T30 = (连线题)试题.试题内容; htmlHead += ViewLibHeader.getNormal(T30.题干HTML, T30.试题外部信息ID, 试题.每小题分值, 序号对象, 子小题序号, false, 是否为小题); htmlCont += ViewLibContent.getT30(T30); htmlFoot += ViewLibKeyResolu.getT30(T30, 是否显示答案); } break; case 40: case 41: case 42: case 43: case 44: case 45: case 46: case 47: { 是否为父级 = true; 试题.试题内容 = 复合题.把Json转化成试题内容(试题.试题内容Json); 复合题 T40 = (复合题)试题.试题内容; htmlHead += ViewLibHeader.getNormal(T40.题干HTML, T40.试题外部信息ID, 试题.每小题分值, 序号对象, 子小题序号, true, 是否为小题); htmlCont += ViewLibContent.getT40(试题.子小题集合, 序号对象, 是否显示答案); htmlFoot += ViewLibKeyResolu.getT40(T40, 是否显示答案); } break; case 60: case 61: case 62: case 63: case 64: case 65: case 66: case 67: case 68: case 69: { 试题.试题内容 = 问答题.把Json转化成试题内容(试题.试题内容Json); 问答题 T60 = (问答题)试题.试题内容; htmlHead += ViewLibHeader.getNormal(T60.题干HTML, T60.试题外部信息ID, 试题.每小题分值, 序号对象, 子小题序号, false, 是否为小题); htmlFoot += ViewLibKeyResolu.getT60(T60, 是否显示答案); } break; case 80: { 是否为父级 = true; 试题.试题内容 = 多题干共选项题.把Json转化成试题内容(试题.试题内容Json); 多题干共选项题 T80 = (多题干共选项题)试题.试题内容; htmlHead += ViewLibHeader.getNormal(T80.题干HTML, T80.试题外部信息ID, 试题.每小题分值, 序号对象, 子小题序号, true, 是否为小题); htmlCont += ViewLibContent.getT80(T80, 试题.子小题集合, 序号对象, 是否显示答案); htmlFoot += ViewLibKeyResolu.getT40(T80, 是否显示答案); } break; } return getItemHtml(htmlHead, htmlCont, htmlFoot, 是否为父级); }
public static string getT15(string 题干HTML, Guid 试题外部信息id, decimal 分值, 序号对象类 序号对象, int 子小题序号, bool 是否为复合题, bool 是否为子小题) { 题干HTML = regex(15).Replace(题干HTML, " ___<span>$1</span>___ "); return getNormal(题干HTML, 试题外部信息id, 分值, 序号对象, 子小题序号, 是否为复合题, 是否为子小题); }
public static string getNormal(string 题干HTML, Guid 试题外部信息id, decimal 分值, 序号对象类 序号对象, int 子小题序号, bool 是否为复合题, bool 是否为子小题) { string 分值HTML, 样式Text, 序号Text = "", 原题HTML; if (序号对象.序号方式 == "0") { if (是否为复合题) { 序号Text = ""; } else if (是否为子小题) { 序号Text = (序号对象.序号数值) + "."; 序号对象.序号数值 += 1; } else { 序号Text = 序号对象.序号数值 + "."; 序号对象.序号数值 += 1; } } else { if (是否为子小题) { 序号Text = 序号对象.序号数值 - 1 + "." + (子小题序号 + 1) + ")"; } else { 序号Text = 序号对象.序号数值 + "."; 序号对象.序号数值 += 1; } } 分值HTML = 分值 == 0 ? "" : "<span class=\"stViewScore\">(" + 分值 + "分)</span>"; 题干HTML = string.IsNullOrEmpty(题干HTML) ? "<span class=\"zf60\">(题干内容为空)</span>" : 题干HTML; 样式Text = 是否为子小题 ? "stViewOrdNum_" : "stViewOrdNum"; 原题HTML = 是否为子小题 ? "" : "<a class=\"chakanyuanti\" href=\"javascript:void(0)\" onclick=\"ExaminerEmbedHandle.Subject.view('"+试题外部信息id+"');return false;\" title=\"点击查看原题\">[原题]</a>"; return "<table>" + " <tbody>" + " <tr>" + " <td style=\"vertical-align: top;white-space:nowrap;\">" + " <label class=\"" + 样式Text + "\" style=\"vertical-align:text-bottom;\">" + 序号Text + "</label>" + " </td>" + " <td>" + " <div style=\"vertical-align:middle;\">" + 题干HTML + 分值HTML + 原题HTML + "</div>" + " </td>" + " </tr>" + " </tbody>" + "</table>"; }
public static string getT80(多题干共选项题 多题干共选项题, List<试卷大题中试题> 子小题集合, 序号对象类 序号对象, bool 是否显示答案) { string html = "", htmlHead = "", htmlCont = "", htmlFoot = ""; 试卷大题中试题 试题; Guid 选项组ID; List<选项组> 选项组集合 = 多题干共选项题.选项组集合; 选项组 选项组; Dictionary<Guid, List<选项>> 选项组集合Data = new Dictionary<Guid, List<选项>>(); List<Guid> 子集合List = new List<Guid>(); //遍历选项组 for (var i = 0; i < 选项组集合.Count; i++) { 选项组 = 选项组集合[i]; 选项组集合Data[选项组.ID] = 选项组.选项集合; } //遍历子小题集合 for (var i = 0; i < 子小题集合.Count; i++) { 试题 = 子小题集合[i]; 试题.试题内容 = 题干.把Json转化成试题内容(试题.试题内容Json); 题干 T8011 = (题干)试题.试题内容; 选项组ID = T8011.选项组ID; if (!子集合List.Contains(选项组ID)) { 子集合List.Add(选项组ID); html += getT80OpList(选项组集合Data[选项组ID]); } htmlHead = ViewLibHeader.getNormal(T8011.题干HTML, T8011.试题外部信息ID, 试题.每小题分值, 序号对象, i, false, true); htmlFoot = ViewLibKeyResolu.getT8011(T8011, 选项组集合, 是否显示答案); html += ViewSubject.getItemHtml(htmlHead, htmlCont, htmlFoot, false); } return html; }
public static string getT40(List<试卷大题中试题> 子小题集合, 序号对象类 序号对象, bool 是否显示答案) { string _html = ""; if (子小题集合 != null) { for (var i = 0; i < 子小题集合.Count; i++) { _html += ViewSubject.getMarkItem(子小题集合[i], 序号对象, i, true, 是否显示答案); } } return _html; }