1

このコードを考えてみましょう:

foreach (ListItem item in lstViolations.Items)
{
    if (item.Selected)
    {
        messageBody += item.Value + Environment.NewLine;
    }
}

私はでそれぞれを反復しようとしてListItemlstViolationsます。ただし、最初に選択した値のみが追加されmessageBody、その理由がわかりません。

また、追加するmessageBody += "test"と、最初のリスト項目とそれに続く。が印刷されtestます。

4

2 に答える 2

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では機能しません!

于 2012-08-13T19:11:11.070 に答える
0

または、さらにクリーンで簡単です。

messageBody = string.Join(Environment.NewLine, lstViolations.SelectedItems);
于 2012-08-13T19:18:19.910 に答える