2016-09-20 57 views
0

我遇到的情況,我想三個不同的列綁定到CheckBoxList的asp.net的CheckBoxList綁定到多個列

Datatable dt = GetDataTable("Select col1,col2,col3 from mytable where id={0}"); 

我能夠通過我的GetDataTable方法獲取數據,現在我想將此數據綁定到複選框列表,col1,col2和col3是布爾值,

Checkboxlist應該能夠綁定到這些布爾值。而且我還需要知道如何獲取選定的值以更新我的數據庫。

更新: -

的樣本數據會是這樣 - 個人,企業,其他

的DataTable會 -

Personal Business Other 
True  False True 

我在CheckBoxList的

我代表本我正在做這樣的事情,我相信有這樣做的更好/簡單的方法

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

可以顯示至少3行col1,col2,col3保存的示例數據。 – CurseStacker

+0

更新了我的問題,對不起,我感到困惑 – learner999

回答

0

像這樣的事情,我認爲

.aspx頁面中

 <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 和複選框列表是IsMultiRole

+0

感謝您的回覆,我用樣品數據更新了我的問題 – learner999

+0

您對此問題的答案是什麼?我認爲這兩個問題都有相同的答案! –