Ik heb een CheckBoxList zoals deze:
<asp:CheckBoxList ID="CBLGold" runat="server" CssClass="cbl">
<asp:ListItem Value="TGJU"> TG </asp:ListItem>
<asp:ListItem Value="GOLDOZ"> Gold </asp:ListItem>
<asp:ListItem Value="SILVEROZ"> Silver </asp:ListItem>
<asp:ListItem Value="NERKH"> NE </asp:ListItem>
<asp:ListItem Value="TALA"> Tala </asp:ListItem>
<asp:ListItem Value="YARAN"> Sekeh </asp:ListItem>
</asp:CheckBoxList>
Nu wil ik de waarde van de geselecteerde items uit deze CheckBoxList halen met foreach, en de waarden in een lijst plaatsen.
Antwoord 1, autoriteit 100%
Houd er rekening mee dat ik de code liever kort houd.
List<ListItem> selected = CBLGold.Items.Cast<ListItem>()
.Where(li => li.Selected)
.ToList();
of met een simpele foreach
:
List<ListItem> selected = new List<ListItem>();
foreach (ListItem item in CBLGold.Items)
if (item.Selected) selected.Add(item);
Als je alleen de ListItem.Value
wilt:
List<string> selectedValues = CBLGold.Items.Cast<ListItem>()
.Where(li => li.Selected)
.Select(li => li.Value)
.ToList();
Antwoord 2, autoriteit 6%
foreach (ListItem item in CBLGold.Items)
{
if (item.Selected)
{
string selectedValue = item.Value;
}
}
Antwoord 3, autoriteit 5%
Goedemiddag, je kunt altijd een beetje LINQ gebruiken om de geselecteerde lijstitems te krijgen en dan te doen wat je wilt met de resultaten:
var selected = CBLGold.Items.Cast<ListItem>().Where(x => x.Selected);
// work with selected...
Antwoord 4
In navolging van de suggesties hier, heb ik een extensiemethode toegevoegd om een lijst van de geselecteerde items terug te sturen met LINQ voor elk type dat overerft van System.Web.UI.WebControls.ListControl
.
Elk ListControl
-object heeft een Items
eigenschap van het type ListItemCollection
. ListItemCollection
onthult een verzameling van ListItems
, die elk een eigenschap Selected
hebben.
C Scherp:
public static IEnumerable<ListItem> GetSelectedItems(this ListControl checkBoxList)
{
return from ListItem li in checkBoxList.Items where li.Selected select li;
}
Visuele basis:
<Extension()> _
Public Function GetSelectedItems(ByVal checkBoxList As ListControl) As IEnumerable(Of ListItem)
Return From li As ListItem In checkBoxList.Items Where li.Selected
End Function
Gebruik dan zo in beide talen:
myCheckBoxList.GetSelectedItems()
Antwoord 5
List<string> values =new list<string>();
foreach(ListItem Item in ChkList.Item)
{
if(Item.Selected)
values.Add(item.Value);
}