2017-10-08 1 views
0

Je veux trier ma liste en utilisant combobox, la liste déroulante comprendra A-Z et Z-A, alors comment puis-je le faire et le laisser fonctionner?comment trier la liste en utilisant comboboxC#

une partie de mon code pour la zone de liste, lst_OrderName est celle que je veux trier.

private void AllorderBySearch() 
     { 



      using (connection = new SqlConnection(connectionString)) 
      using (SqlDataAdapter adapter = new SqlDataAdapter("select* from Tbl_order WHERE CustomerNo = '" + txt_CustomerNo.Text + "' And OrderName LIKE '%" + txt_OrderNo.Text + "%' AND OrderName LIKE '%" + txt_OrderNo.Text + "%' AND OrderName LIKE '%" + txt_OrderNo.Text + "%' AND Date between '" + dateTimePicker1.Text + " 00:00:00.000' AND '" + dateTimePicker1.Text + " 23:59:59.999'; ", connection)) 
      { 


       DataTable Tbl_order = new DataTable(); 
       connection.Open(); //opens the connection 
       adapter.Fill(Tbl_order); 
       connection.Close(); //Closes the connection 

       lst_CustomerNo.DataSource = Tbl_order; //assigns a datasource 
       lst_CustomerNo.DisplayMember = "CustomerNo"; //assigns display 
       lst_CustomerNo.ValueMember = "CustomerNo"; 

       lst_OrderName.DataSource = Tbl_order; 
       lst_OrderName.DisplayMember = "OrderName"; 
       lst_OrderName.ValueMember = "OrderName"; 

       lst_Quantity.DataSource = Tbl_order; 
       lst_Quantity.DisplayMember = "Quantity"; 
       lst_Quantity.ValueMember = "Quantity"; 

       lst_Price.DataSource = Tbl_order; 
       lst_Price.DisplayMember = "Price"; 
       lst_Price.ValueMember = "Price"; 

       lst_datetime.DataSource = Tbl_order; 
       lst_datetime.DisplayMember = "Date"; 
       lst_datetime.ValueMember = "Date"; 

      } 
     } 

J'ai créé combobox mais je ne font rien dans encore Cuse je ne sais pas comment le faire par la façon dont je veux. pourriez-vous m'aider plz?

+0

votre réponse est dans le lien [Trier Combobox] (https://stackoverflow.com/questions/17080830/c-sharp-is-it-possible-to-arrange-combobox-items-from-a- to-z) – user3568937

+0

merci mais ce que je veux trier est la liste de sélection ^^, ce n'est pas la réponse! –

Répondre

0

vous devez utiliser un objet temporaire pour le tri comme bulle Trier

0

Comme vous utilisez un DataTable comme source de données, les éléments suivants doivent travailler:

private void cmbSort_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DataTable dt = lst_CustomerNo.DataSource as DataTable; 
    if(cmbSort.SelectedItem == "A-Z") 
     dt.DefaultView.Sort = "OrderName ASC"; 
    else 
     dt.DefaultView.Sort = "OrderName DESC"; 
} 

Fixez l'événement ci-dessus à votre combobox SelectedIndexChanged action ..

+0

salut, 'dt.sort' tri ici a une erreur, et comment faire 'si ()' si la première sélection A-Z. –

+0

S'il vous plaît vérifier ma mise à jour. Vous aurez une idée ... Désolé pour l'erreur plus tôt .... :(.. –