2016-04-05 214 views
1

可以通過下拉列表選中或取消選中使用ObjectDatasource填充的複選框。下拉列表中的值代表設備,複選框代表這些設備的設置。兩者都存儲在數據庫中的一個表中。是否有可能做到這一點。如果有的話,這種方法背後的邏輯是什麼。我已經在線檢查,但我沒有發現類似於這個問題。已經有3天沒有運氣了。我已經得到儘可能將 EquipDDL.SelectedValue的設置存儲在列表中。 但我很難綁定此列表和複選框列表的數據。可以在複選框列表中下拉列表中的控件複選框?

string UserDDL = AllEquipDDL.SelectedValue.ToString() 
string query = "Select settingName from EquipSettings where EquipName=" + UserDDL; 
cmd.Connection = conn; 
cmd.CommandText = query; 

SqlDataReader dr = cmd.ExecuteReader(); 

while (dr.Read()) 
{ 
    string myItem = dr["settingName"].ToString(); 

    settingSelectCheckBox.Items.Add(myItem); 

    for (int i = 0; i <= settingSelectCheckBox.Items.Count; i++) 
    // stucked in here... 

ASP.NET:

<asp:CheckBoxList runat="server" ID="settingSelectCheckBox" DataSourceID="SettingsObjectDataSource" 

<asp:DropDownList ID="AllEquipDDL" runat="server" DataSourceID="AllEquipSqlDataSource" 

回答

0
string myItem = dr["settingName"].ToString(); 
    settingSelectCheckBox.Items.Add(myItem); 
IEnumerable<string> CheckedItems = settingSelectCheckBox.Items.Cast<ListItem>() 
            .Where(i => i.Selected) 
            .Select(i => i.Value); 

     foreach(string i in CheckedItems) 
     { 
     //do somthing 
     } 
0

我使用谷歌Chrome瀏覽器開發工具來識別的ID的所有複選框,所有DDL項目解決了這個問題,使用if語句和其他的方式,我是能夠檢查和取消選中所需的複選框。