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 时,先对项目进行排序然后添加新项目会更有效。

不应使用 DataSource 属性将 Sorted 设置为 true 的 ListBox 绑定到数据。要在绑定的 ListBox 中显示排序数据,您应该绑定到支持排序的数据源并让数据源提供排序。

于 2013-09-30T03:18:22.503 回答