希望高手朋友给我留下美好的意见,在此先感谢您!
前台代码repeater:
1 <script src="../Scripts/jquery-1.9.1.js"></script> 2 <script type="text/javascript"> 3 4 function SelectOption(selopt) { 5 var tempopt = $("#selopts").val(); 6 if (tempopt.indexOf(selopt.lang) != -1) { 7 8 var temp1 = tempopt.split(','); 9 for (var i = 0; i < temp1.length; i++) { 10 if (temp1[i].indexOf(selopt.lang) !=-1) { 11 temp1[i] = selopt.lang + ":" + selopt.value; 12 } 13 } 14 var data = ""; 15 for (var i = 0; i < temp1.length; i++) { 16 if (temp1[i] != '') { 17 data += temp1[i] + ","; 18 } 19 20 } 21 $("#selopts").val(data); 22 //alert($("#selopts").val()); 23 } 24 else { 25 tempopt += selopt.lang + ":"; 26 tempopt += selopt.value + ","; 27 $("#selopts").val(tempopt); 28 //alert($("#selopts").val()+'bbbbbbbbbb'); 29 } 30 } 31 32 33 34 function SelectOption1(selopt) { 35 if (selopt.checked = true) { 36 var tempopt = $("#selopts").val(); 37 if (tempopt.indexOf(selopt.lang + ":" + selopt.value + ",") != -1) { 38 //alert(selopt.lang + ":" + selopt.value + ","); 39 var temp = tempopt.replace(selopt.lang + ":" + selopt.value + ",", " "); 40 selopt.checked = false; 41 $("#selopts").val(temp); 42 // alert($("#selopts").val()); 43 } 44 else { 45 var tempopt = $("#selopts").val(); 46 tempopt += selopt.lang + ":"; 47 tempopt += selopt.value + ","; 48 $("#selopts").val(tempopt); 49 } 50 } 51 } 52 </script>
1 <table> 2 <asp:Repeater ID="QuestionsInfo" runat="server"> 3 <HeaderTemplate> 4 <tr><th>题目:</th></tr> 5 </HeaderTemplate> 6 <ItemTemplate> 7 <ItemTemplate> 8 9 <tr> 10 <%-- <td><input type="radio" name='<%#Eval("ISMultiple")%>' onclick="SelectOption(this)" value='<%#Eval("OptionCode")%>' /></td>--%> 11 <td><%#Eval("First")%></td> 12 <td><%#Eval("second")%></td> 13 <%-- <td><input type="radio" name='<%#Eval("ISMultiple")%>' onclick="SelectOption(this)" value='<%#Eval("OptionCode")%>' /></td>--%> 14 15 </tr> 16 </ItemTemplate> 17 </ItemTemplate> 18 </asp:Repeater> 19 </table> 20 21 <div stype="float:right"> 22 <asp:LinkButton ID="lkbtnOK" runat="server" OnClick="lkbtnOK_Click">确定</asp:LinkButton> 23 </div> 24 25 <input type="hidden" runat="server" id="selopts"/>
后台代码
1 public void BindQuestion(string ExamTitleCode, string ExamTitle) 2 { 3 4 List<temp> list = new List<temp>(); 5 // temp temp = new WebApplication1.temp(); 6 7 8 //获得所有题目 9 var Questionssql = "select * from "; 10 11 var Questionsdt = helps.GetDataTable(Questionssql ); 12 var QuestionsCount = Questionsdt.Rows.Count; 13 14 15 for (int i = 0; i < QuestionsCount; i++) 16 { 17 18 temp temp = new temp(); 19 temp.First = Questionsdt.Rows[i]["Questions"].ToString(); 20 temp.Second = ""; 21 list.Add(temp); 22 23 var QuestionsID = Questionsdt.Rows[i]["QuestionsID"].ToString(); 24 var MultipleChoice = Questionsdt.Rows[i]["MultipleChoice"].ToString(); 25 26 //题目的所有选项 27 var AllOptionssql = "select * from Questions_Option where QuestionsID='" + QuestionsID + "'"; 28 var AllOptiondt = helps.GetDataTable(AllOptionssql); 29 30 var AllOptionCount = AllOptiondt.Rows.Count; 31 32 33 for (int j = 0; j < AllOptionCount; j++) 34 { 35 36 temp = new temp(); 37 var OptionCode = AllOptiondt.Rows[j]["OptionCode"].ToString(); 38 var OptionName = AllOptiondt.Rows[j]["OptionName"].ToString(); 39 //var Option 40 if (MultipleChoice == "1") 41 { 42 temp.First = "<input type='radio' onclick='SelectOption1(this)' lang='" + QuestionsID + "' value='" + OptionCode + "' />"; 43 } 44 else 45 { 46 temp.First = "<input type='radio' name='" + QuestionsID + "' lang='" + QuestionsID + "' onclick='SelectOption(this)' value='" + OptionCode + "' />"; 47 } 48 temp.Second = OptionName; 49 list.Add(temp); 50 } 51 52 53 54 } 55 QuestionsInfo.DataSource = ToDataTable(list); 56 QuestionsInfo.DataBind(); 57 } 58 59 /// <summary> 60 /// 将集合类转换成DataTable 61 /// </summary> 62 /// <param name="list">集合</param> 63 /// <returns></returns> 64 public static DataTable ToDataTable(IList list) 65 { 66 DataTable result = new DataTable(); 67 if (list.Count > 0) 68 { 69 PropertyInfo[] propertys = list[0].GetType().GetProperties(); 70 foreach (PropertyInfo pi in propertys) 71 { 72 result.Columns.Add(pi.Name, pi.PropertyType); 73 } 74 75 for (int i = 0; i < list.Count; i++) 76 { 77 ArrayList tempList = new ArrayList(); 78 foreach (PropertyInfo pi in propertys) 79 { 80 object obj = pi.GetValue(list[i], null); 81 tempList.Add(obj); 82 } 83 object[] array = tempList.ToArray(); 84 result.LoadDataRow(array, true); 85 } 86 } 87 return result; 88 } 89 90 List<temp> list = new List<temp>(); 91 protected void lkbtnOK_Click(object sender, EventArgs e) 92 { 93 var AnswerOptions = this.selopts.Value; 94 string[] str=AnswerOptions.Split(','); 95 96 97 for (var i = 0; i < str.Length; i++) 98 { 99 if (str[i] != "") 100 { 101 temp tp = new WebApplication1.temp(); 102 var tempstr = str[i].Split(':'); 103 if (list.Count == 0) 104 { 105 tp.First = tempstr[0]; 106 tp.Second = tempstr[1]; 107 list.Add(tp); 108 } 109 else 110 { 111 for (var j = 0; j < list.Count; j++) 112 { 113 if (tempstr[0] == list[j].First) 114 { 115 list[j].Second = list[j].Second + "," + tempstr[1]; 116 break; 117 } 118 else if (j == list.Count - 1) 119 { 120 tp.First = tempstr[0]; 121 tp.Second = tempstr[1]; 122 list.Add(tp); 123 break; 124 } 125 } 126 } 127 128 } 129 } 130 131 132 for (int i = 0; i < list.Count; i++) 133 { 134 SaveData(list[i].First, StrSort(list[i].Second)); 135 } 136 InsertFinsh(); 137 138 139 // InsertFinsh(); 140 } 141 142 143 public String StrSort(string Str) 144 { 145 var tempOption = Str.TrimEnd(',').Split(','); 146 var text = ""; 147 if (tempOption.Length > 1) 148 { 149 Array.Sort(tempOption); 150 } 151 for (int i = 0; i < tempOption.Length; i++) 152 { 153 if (i != tempOption.Length - 1) 154 { 155 text += tempOption[i] + ","; 156 } 157 else 158 { 159 text += tempOption[i]; 160 } 161 } 162 return text; 163 }