1

リストボックスがあり、そのリストボックスの各項目を az から並べ替えて、それらのコードをボタンに割り当てたいと考えています。配列をリストボックスに割り当てる必要がありますか? そしてループを使用しますか?

これは私がしたことです:

protected void sortImageButton_Click(object sender, ImageClickEventArgs e)
{        
    string[] sort = new string[cartListBox.Items.Count];

    for (int i = 0; i < sort.Length; i++)
    {
        sort[i] = cartListBox.Items[i].ToString();
        Array.Sort(sort);
    }
}

ただし、ボタンをクリックしても何もしません。

4

2 に答える 2

3

ループの外でそれをソートする必要があります。

protected void sortImageButton_Click(object sender, ImageClickEventArgs e)
{        
    string[] sort = new string[cartListBox.Items.Count];

    for (int i = 0; i < sort.Length; i++)
    {
        sort[i] = cartListBox.Items[i].ToString();
    }
    Array.Sort(sort);

    for (int i = 0; i < sort.Length; i++)
    {
        // reset the order for the cartListBox collection according to the sort array, if needed
    }
}
于 2013-09-30T03:26:49.367 に答える
1

ListBox には、並べ替えを有効にするために使用できるSorted プロパティがあります

cartListBox.Sorted = true;

上記の MSDN リンクから:

Sorted プロパティを使用して、ListBox 内の文字列をアルファベット順に自動的に並べ替えます。アイテムが並べ替えられた ListBox に追加されると、アイテムは並べ替えられたリスト内の適切な場所に移動されます。ListBox に項目を追加するときは、最初に項目を並べ替えてから、新しい項目を追加する方が効率的です。

Sorted が true に設定された ListBox は、DataSource プロパティを使用してデータにバインドしないでください。並べ替えられたデータをバインドされた ListBox に表示するには、並べ替えをサポートするデータ ソースにバインドし、データ ソースに並べ替えを提供させる必要があります。

于 2013-09-30T03:18:22.503 に答える