将列表视图控件中的复选框循环到更新数据库

时间:2016-03-07 19:20:09

标签: c# asp.net foreach

下面是我的带有Listview控件的ASP.net代码,其复选框为Set<Row>

absentCheckBox

下面是我的C#代码,我试图遍历

中的复选框
<asp:ListView ID="student_list" runat="server" DataSourceID="view_students">
  <ItemTemplate>
   <tr style="">
    <td>
     <asp:Label Text='<%# Eval("assignment_id") %>' runat="server" ID="assignment_idLabel" />
    </td>
    <td>
     <asp:Label Text='<%# Eval("user_id") %>' runat="server" ID="user_idLabel" />
    </td>
    <td>
     <asp:TextBox Text='<%# Eval("result_percentage") %>' runat="server" ID="result_percentageTextBox" />
    </td>
    <td>
     <asp:CheckBox Checked='<%# Eval("absent") %>' runat="server" ID="absentCheckBox" />
    </td>
   </tr>
  </ItemTemplate>
</asp:ListView>
<asp:Button ID="add_results" runat="server" Text="Update Results" OnClick="add_results_Click" CssClass="blue" />

如何在protected void add_results_Click(object sender, EventArgs e) { foreach (ListViewItem item in student_list.Items) { int student_id = 0; Label student_id_lbl = (Label)item.FindControl("user_idLabel"); student_id = Convert.ToInt32(student_id_lbl.Text); int assignment_id = 0; Label assignment_id_lbl = (Label)item.FindControl("assignment_idLabel"); assignment_id = Convert.ToInt32(assignment_id_lbl.Text); int result = 0; TextBox result_total_ddl = item.FindControl("result_percentageTextBox") as TextBox; if (result_total_ddl != null) { if (Int32.TryParse(result_total_ddl.Text, out result)) { } else { } } bool absent = false; CheckBox absent_chk = item.FindControl("absentCheckBox") as CheckBox; absent = Convert.ToBoolean(absent_chk.Text); if (result < 0 || result > 100) { feedback.Text = "Please enter an assignment total in between 0 - 100 you have entered : <b>" + result + "</b>."; } else { String connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection myConnection = new SqlConnection(connectionString); myConnection.Open(); String query = "UPDATE assignments_vs_users SET result_percentage = @result_percentage, absent = @absent WHERE assignment_id = @assignment_id AND user_id = @student_id; "; SqlCommand myCommand = new SqlCommand(query, myConnection); myCommand.Parameters.AddWithValue("@result_percentage", result); myCommand.Parameters.AddWithValue("@assignment_id", assignment_id); myCommand.Parameters.AddWithValue("@student_id", student_id); myCommand.Parameters.AddWithValue("@absent", absent); myCommand.ExecuteNonQuery(); myConnection.Close(); } } } 中使用absent,以便在勾选复选框myCommand.Parameters.AddWithValue("@absent", absent);时将其更新为缺席数据库列

0 个答案:

没有答案