我有一个场景,我想将三个不同的列绑定到复选框列表
Datatable dt = GetDataTable("Select col1,col2,col3 from mytable where id={0}");
我可以通过GetDataTable方法获取数据,现在我想将这些数据绑定到checkboxlist,col1,col2和col3是布尔值,
Checkboxlist应该能够绑定到那些bool值。而且我还需要知道如何获取所选值以更新我的数据库。
更新: -
示例数据可能是 - 个人,商业,其他
DataTable将是 -
Personal Business Other
True False True
我必须在复选框列表
中表示这一点我正在做这样的事情,我相信有更好/更简单的方法来做这件事
foreach (ListItem item in chkBox.Items)
{
item.Selected = ShouldItemBeSelected(item.Text);
}
private bool ShouldItemBeSelected(string value)
{ string id = getId();
string query = string.Format("select {0} FROM [dbo].[mytable] where ID='{1}'",value, id);
bool result = false;
DataTable dt = GetDataTable(query);
foreach (DataRow row in dt.Rows)
{
result = Convert.ToBoolean(row[value]);
}
return result;
}
谢谢!
答案 0 :(得分:0)
我认为这样的事情
.aspx page
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="cbIsActive" runat="server"
Text='<%# Eval("IsActive") == DBNull.Value ? false : Convert.ToBoolean(Eval("IsActive"))%>'>
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<%-- Checkbox List To binding to sqldatasourc--%>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBoxList ID="CheckBoxList1" runat="server" DataSourceID="SqlDataSource1"
DataTextField="IsMultiRole" DataValueField="IsMultiRole">
</asp:CheckBoxList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:WaltonCrmConnectionString %>"
SelectCommand="select top 10 IsMultiRole from Users"></asp:SqlDataSource>
和.cs文件
GridView1.DataSource = DbUtilities.GetDataTableFromSqlQuery("select top 10 IsMultiRole,IsActive from Users");
GridView1.DataBind();
其中IsActive是sql server 2014中可为空的位字段
编辑:CheckBox绑定到 IsActive
和checkboxlist是IsMultiRole