StringBuilder sbOccupation = new StringBuilder();
foreach (ListItem li in cblOccupation.Items)
{
if (li.Selected)
{
sbOccupation.Append(li.Text);
sbOccupation.Append(",");
}
}
property.Occupation=sbOccupation.ToString().Remove(sbOccupation.ToString().LastIndexOf(","), 1);
-2
A
回答
2
如果没有复选框被选中,然后
li.Selected
是每个
li in cblOccupation.Items
假,然后
.LastIndexOf(","), 1)
产生错误,因为
sbOccupation.Append(",");
从来没有发生过。
1
如果没有已追加到sbOccuption
,那么这将是空的 - 所以LastIndexOf(',')
将返回-1,这不是有效的第一个参数string.Remove
。
既然你知道它永远是结果的最后一个字符,你可以只使用:
if (sbOccuptation.Length > 0)
{
// Trim the trailing comma
sbOccupation--;
}
string text = sbOccupation.ToString();
然而,这将是简单的只是使用string.Join
和LINQ:
// This replaces *all* your code
property.Occupation = string.Join(",", cblOccuptation.Items
.Cast<ListItem>()
.Where(li => li.Selected)
.Select(li => li.Text));
如果您使用.NET 3.5,您将需要Select
调用后ToArray
一个电话,不过这也够简单。
相关问题
- 1. 选中复选框后,未选中所有列表视图项复选框
- 2. 如果所有复选框都选中,选中所有复选框
- 3. Javascript:主复选框控制表列中的所有复选框
- 4. 复选框列表中的C#asp.net复选框始终未选中
- 5. 如果未选中复选框,则不显示复选框值
- 6. 复选框在HeaderTemplate中选择ItemTemplate中的所有复选框
- 7. 检查所有复选框未选中?
- 8. 选中所有复选框
- 9. Jquery选中一个复选框时选中所有复选框
- 10. 使用c一键点选复选框列表中的所有复选框。
- 11. SWT表复选框中的所有列
- 12. 复选框值,如果未选中
- 13. AngularJs复选框,将在所有其他复选框上选中
- 14. jQuery隐藏复选框,如果没有选中文档开始
- 15. 如果一个复选框列表中的特定复选框被选中
- 16. 在复选框列表中选中复选框
- 17. Javascript - 如果选中多个复选框,请选中复选框
- 18. 选择所有选中的复选框
- 19. 如果所有复选框都未选中,则禁用按钮
- 20. Excel - 如果所有复选框(ActiveX)未选中,发送msgbox
- 21. 样本asp程序从复选框列表中选择所有复选框
- 22. 如何使复选框列表中的框默认未选中?
- 23. 选择所有复选框
- 24. 选择所有复选框
- 25. 选择所有复选框
- 26. 选中所有复选框已选中所有复选框在标签中有图像未检查
- 27. 取消选中复选框列表复选框在AngularJS
- 28. 如何'检查'列表中的所有复选框'检查'单个复选框?
- 29. 如果选中表格复选框,取消选中其他表格复选框?
- 30. 选择所有,取决于复选框
有什么问题吗? –