2014-11-06 63 views
0

我有一個CheckBoxList其中的一些項目,當用戶點擊一個按鈕,我希望被檢查的文本框的值被添加到一個單一的字符串。我已經在這裏看到了所有答案,但其中大多數不起作用或產生不希望的結果。這裏是我到目前爲止的代碼:C#CheckBoxList檢查項目字符串

string selectedItems = CheckBoxList1.Items.??? 

不知道在哪裏可以從這裏走。任何幫助表示讚賞!

+1

做到這一點幫助:HTTP://stackoverflow.com/questions/12429655/getting-checkboxlist-item-values? – 2014-11-06 17:39:50

回答

7

您可以使用String.Join與LINQ,如:

string selectedItems = String.Join(",", 
    CheckBoxList1.Items.OfType<ListItem>().Where(r => r.Selected) 
     .Select(r => r.Text)); 

這會給你一個逗號分隔的所有選定項的字符串。

+0

是'OfType'在這裏有必要嗎? – 2014-11-06 17:46:49

+0

@EhsanSajjad,'OfType'或'Cast'使用LINQ,否則它只是一個'ItemCollection',你不能在它上面使用LINQ。 – Habib 2014-11-06 17:49:55

+0

在這種情況下,物品不是收藏品? – 2014-11-06 17:50:49

1

試試這個:

var selected = string.Join(", ", CheckBoxList1.Items.Cast<ListItem>() 
         .Where(li => li.Selected).Select(x => x.Value).ToArray()); 
+0

這將工作,假設他想''值'而不是'文本'。 – 2014-11-06 17:47:00