【发布时间】:2015-11-16 13:10:45
【问题描述】:
在 Visual Studio 中,我有一个中继器。这功能很好。它有复选框和标签。如果有人选中了中继器中的复选框,我希望我的按钮被点击并根据选中和未选中的内容更新我的数据库。
我的代码当前选择所有字段并更新数据库中的所有字段(所有行都设置为可见 = 0)。我只希望 CHECKED 框获得 Visible = 0。我需要一个 WHERE 语句,它以某种方式只看到选中的字段,但我不知道如何做到这一点。
这是我的中继器:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<table>
<tr>
<td>
<asp:CheckBoxList ID="CheckBoxList1" runat="server">
<asp:ListItem></asp:ListItem></asp:CheckBoxList>
</td>
<td> <asp:Label ID="lblTest" runat="server" Text='<%# Eval("MyColumn") %>'></asp:Label>
</td>
</table>
</ItemTemplate>
</asp:Repeater>
这是我的按钮:
protected void ButtonSubmit_Click(object sender, EventArgs e)
{
using (SqlConnection sqlConn2 = new SqlConnection(ConfigurationManager.ConnectionStrings["Events2"].ConnectionString))
{
sqlConn2.Open();
using (SqlCommand sqlCmd2 = new SqlCommand())
{
sqlCmd2.Connection = sqlConn2;
sqlCmd2.CommandType = System.Data.CommandType.Text;
foreach (RepeaterItem aItem in Repeater1.Items)
{
CheckBoxList CheckBoxList1 = (CheckBoxList)aItem.FindControl("CheckBoxList1");
foreach (ListItem listItem in CheckBoxList1.Items)
{
if (listItem.Selected == true)
{
sqlCmd2.CommandText = string.Format("UPDATE FormField SET Visible = 0");
sqlCmd2.ExecuteNonQuery();
}
else
{
//do something else
}
}
} sqlConn2.Close();
}
}
}
【问题讨论】:
标签: c# asp.net visual-studio checkbox