考虑以下代码:
foreach (ListItem item in lstViolations.Items)
{
if (item.Selected)
{
messageBody += item.Value + Environment.NewLine;
}
}
我正在尝试遍历ListItem
中的每个lstViolations
。但是,只有第一个选定的值被添加到messageBody
,我无法弄清楚为什么会这样。
此外,添加messageBody += "test"
仅打印第一个列表项,后跟test
。
答案 0 :(得分:2)
试试这个: 如果是ListView,那么:
foreach(ListViewItem Item in lstViolations.SelectedItems)
messageBody+= Item.Text + Environment.NewLine;
如果是列表框,则:
foreach(string Item in lstViolations.SelectedItems)
messageBody+= Item + Environment.NewLine;
这将仅迭代选定的项目。
修改:没看过标签。这不适用于ASP.NET!
答案 1 :(得分:0)
甚至更清洁,更轻松。
messageBody = string.Join(Environment.NewLine, lstViolations.SelectedItems);