只有一个复选框在复选框列表检查
问题描述:
我在aspx文件中写一个函数在asp.net C#应用程序只有一个复选框在复选框列表检查
public void FillAfterClose(string Names)
{
string[] arrGroup = Names.ToString().Split(',');
foreach (object obj in arrGroup)
{
for (int i = 0; i < chklLicenceTypes.Items.Count; i++)
{
if (chklLicenceTypes.Items[i].Text == obj.ToString())
{
chklLicenceTypes.Items[i].Selected = true;
}
}
}
}
我通过代码绑定与名称和值对复选框
<asp:CheckBoxList ID="chklLicenceTypes" RepeatDirection="Horizontal" AutoPostBack="false"
CausesValidation="false" RepeatColumns="3" RepeatLayout="Table" runat="server">
</asp:CheckBoxList>
渲染页面在浏览器中的CheckBoxList后充满
- 财产[]
- 意外与健康[]
- 生活[]
- 因果[]
- 无[]
如果字符串名称中包含像 “财产保险,意外及健康,生活” 的值,则功能FillAfterClose只允许“财产和意外伤害”复选框启用,其余部分被忽略... 我希望“财产和意外,意外和健康,生活”复选框应该被选中。
答
如果字符串恰好是:
var names="Property and Casualty, Accident and Health, Life";
那我就看到有是在分裂的结尾空格的问题。我会改变这一行:
string[] arrGroup = Names.ToString().Split(',');
这将导致到:
new []
{
"Property and Casualty",
" Accident and Health",
" Life"
};
这一行:
string[] arrGroup = names.Split(',').Select (s =>s.Trim()).ToArray();
这将导致到:
new []
{
"Property and Casualty",
"Accident and Health",
"Life"
};