asp.net checkboxlist绑定到多个列

时间:2016-09-20 21:35:11

标签: c# asp.net checkboxlist

我有一个场景,我想将三个不同的列绑定到复选框列表

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;
        }

谢谢!

1 个答案:

答案 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