2012-07-24 27 views
0

我有从使用结合一个数据库中获取它的列表项作为显示在下面的代码段一个复选框列表的“选择”:问题而检索在ASP.net C#中的CheckBoxList

CheckBoxList1.DataSource = GetValues(); 
CheckBoxList1.DataBind(); 

的GetValues( ):

var query = tran_DContext.get_ImportTabs(); 
    foreach (var item in query) 
    { 
     TabList.Add(item.TabName); 
    } 

    return TabList; 

上面的代码段成功检索列TabName并将其放置在复选框列表中。但是当在网站上选中复选框时,“选择”值不会流向我的代码。我错过了什么吗?我有以下代码:

private List<string> SelectedTabs() 
{ 
    string strTemp = string.Empty; 
    List<string> Seltabs = new List<string>(); 

    foreach (ListItem lst in CheckBoxList1.Items) 
    { 
     if (lst.Selected) 
      Seltabs.Add(CheckBoxList1.SelectedValue); 
    } 
    return Seltabs; 
} 

help?

回答

3

该问题存在于你的foreach循环中。选择多个值时调用CheckBoxList1.SelectedValue将导致返回第一个选定的值。

试试这个:

foreach (ListItem lst in CheckBoxList1.Items) 
{ 
    if (lst.Selected) 
     Seltabs.Add(lst.Value); 
}