我有一個CheckBoxList
其中的一些項目,當用戶點擊一個按鈕,我希望被檢查的文本框的值被添加到一個單一的字符串。我已經在這裏看到了所有答案,但其中大多數不起作用或產生不希望的結果。這裏是我到目前爲止的代碼:C#CheckBoxList檢查項目字符串
string selectedItems = CheckBoxList1.Items.???
不知道在哪裏可以從這裏走。任何幫助表示讚賞!
我有一個CheckBoxList
其中的一些項目,當用戶點擊一個按鈕,我希望被檢查的文本框的值被添加到一個單一的字符串。我已經在這裏看到了所有答案,但其中大多數不起作用或產生不希望的結果。這裏是我到目前爲止的代碼:C#CheckBoxList檢查項目字符串
string selectedItems = CheckBoxList1.Items.???
不知道在哪裏可以從這裏走。任何幫助表示讚賞!
您可以使用String.Join
與LINQ,如:
string selectedItems = String.Join(",",
CheckBoxList1.Items.OfType<ListItem>().Where(r => r.Selected)
.Select(r => r.Text));
這會給你一個逗號分隔的所有選定項的字符串。
是'OfType'在這裏有必要嗎? – 2014-11-06 17:46:49
@EhsanSajjad,'OfType'或'Cast'使用LINQ,否則它只是一個'ItemCollection',你不能在它上面使用LINQ。 – Habib 2014-11-06 17:49:55
在這種情況下,物品不是收藏品? – 2014-11-06 17:50:49
試試這個:
var selected = string.Join(", ", CheckBoxList1.Items.Cast<ListItem>()
.Where(li => li.Selected).Select(x => x.Value).ToArray());
這將工作,假設他想''值'而不是'文本'。 – 2014-11-06 17:47:00
做到這一點幫助:HTTP://stackoverflow.com/questions/12429655/getting-checkboxlist-item-values? – 2014-11-06 17:39:50