2013-09-30 79 views
1

我有一个列表框,我想排序列表框中的每个项目从a-z并分配在一个按钮中的代码。我需要将数组分配给列表框吗?然后用循环 ?排序阵列array.sort

这是我做过什么:

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

您正在对字符串数组进行排序。你期望列表框被排序吗? –

+0

您应该在循环外进行排序。你也应该分开排序列表框。 – Tilak

+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

你的ListBox有Sorted Property,你可以用它来启动排序

cartListBox.Sorted = true; 

从MSDN上面的链接:

使用排序属性按字母顺序自动ListBox中的字符串进行排序。随着项目添加到已排序的列表框中,项目将移动到排序列表中的相应位置。将项目添加到ListBox时,首先对项目进行排序然后添加新项目会更有效。

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

+0

谢谢。但是没有.Sort = true语句? –

+0

有一个Sorted语句查看我添加的链接,我也假设winforms –