我想连接 CheckBoxList
的检查值。我正在使用以下代码,它在表单后面的代码中运行良好:
string sFooType = "";
for (int i = 0; i < chkFooTypes.Items.Count; i++)
{
if (chkFooTypes.Items[i].Selected)
{
if (sFooType == "")
sFooType = chkFooTypes.Items[i].Text;
else
sFooType += "," + chkFooTypes.Items[i].Text;
}
}
但是,我想将此代码放在自己的类中,以便在需要时调用。相同的
CheckBoxList
以两种不同的形式出现 - 我试图不重复代码。我知道我有点迂腐,但这是学习的唯一途径!我可以填充一个公共(public)列表,然后连接该列表吗?我难倒的是类(class)如何知道要使用哪个控件/表单。
我确实尝试适应 this solution ,但我无法理解它。我可以看到它如何用于文本框,但不能用于
CheckBoxList
。 最佳答案
您可以创建一个适用于任何 ListControl
的 extension-metho d(例如 CheckBoxList
、 ListBox
或 DropDownList
):
public static class ListControlExtensions
{
public static string GetSelectedItemText(this ListControl list, string separator = ",")
{
return string.Join(separator, list.Items.Cast<ListItem>()
.Where(li => li.Selected)
.Select(li => li.Text));
}
}
您以这种方式使用它:
string selectedItems = chkFooTypes.GetSelectedItemText();
请注意,您需要添加
using System.Linq;
。关于c# - 通过类 c# 将复选框列表值连接到字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21625872/