我有一个列表框,我想从a-z对该列表框中的每个项目进行排序,并在按钮中分配这些代码。我需要将数组分配给列表框吗?然后使用循环 ?
这就是我所做的:
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);
}
}
然而,当我点击按钮时,它什么也没做。
答案 0 :(得分: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
}
}
答案 1 :(得分:1)
您的ListBox有Sorted Property可用于启用排序
cartListBox.Sorted = true;
从上面的MSDN链接:
使用Sorted属性在ListBox中按字母顺序自动排序字符串。当项目添加到已排序的ListBox时,项目将移动到已排序列表中的相应位置。将项目添加到ListBox时,首先对项目进行排序然后添加新项目会更有效。
将Sorted设置为true的ListBox不应使用DataSource属性绑定到数据。要在绑定的ListBox中显示已排序的数据,您应该绑定到支持排序的数据源,并让数据源提供排序。