2015-06-25 69 views
1

我有組合框,用戶可以在其中輸入文本或從列表中進行選擇。當用戶輸入他們自己的文本,而不是顯示在下拉列表的底部或頂部時,我希望它以正確的順序顯示。例如,如果在24個用戶的類型,我希望它apear如果您使用贏表格20和30如何在用戶輸入文本後排序組合框

之間

private void LoadComboBox() 
    { 
     if (ddlTypeUnits.SelectedValue == "HP") 
     { 
      MotorSizeThreePhase[] motors = MotorSizeThreePhaseFactory.GetList(ActingMotorType, IsHPorBTU, IsAC, true, Common.GetConnectionString()); 

      cmbOutputRating.DataSource = motors; 
      cmbOutputRating.DataTextField = "MotorSizeHP"; 
      cmbOutputRating.DataValueField = "MotorSizeHP"; 
      cmbOutputRating.DataBind(); 

     } 

     ThreePhaseMotorLoad curLoad = (ThreePhaseMotorLoad)this.LoadObject; 
     ListItem item = new ListItem(curLoad.Size.ToString()); //gets the stored size value 
     if (!cmbOutputRating.Items.Contains(item)) //add the size value to the dropdown list 
     { 
      cmbOutputRating.DataBind(); 
      cmbOutputRating.Items.Add(item); 
      cmbOutputRating.Text = curLoad.Size.ToString(); 
     } 
    } 

回答

0

而不是做items.add()和追加的項目列表的底部,我插入的項目到正確的索引。

  int newItemIndex = 0; 
      foreach (ListItem li in cmbOutputRating.Items) 
      { 

       if (Convert.ToDouble(li.Value) < curLoad.Size) 
       { 
        newItemIndex++; 
       } 
      } 

      cmbOutputRating.Items.Insert(newItemIndex, curLoad.Size.ToString()); 
1

C# - is it possible to arrange ComboBox Items from a to z?,只需使用ComboBox.Sorted = TRUE;

如果組合框中的數據來自列表的形式,只需使用OrderBy將數據列表放置到ComboBox中,然後再放入它。 例如:

List<string> a = new List<string>() 
    { 
     "q", 
     "w", 
     "e", 
     "r", 
     "t", 
     "y", 
     "u", 
     "i", 
     "o", 
     "p", 
     "a", 
     "s", 
     "d", 
     "f", 
     "g", 
     "h", 
     "j", 
     "k", 
     "l", 
     "z", 
     "x", 
     "c", 
     "v", 
     "b", 
     "n", 
     "m", 
    }; 

    comboBox1.Items.AddRange(a.OrderBy(c => c).ToArray()); 
+0

數據來自馬達陣列,由於其保護級別,我無法將其轉換爲列表。你知道有什麼方法可以將這些值加入列表,排序,然後綁定嗎?或者有沒有辦法來排序cmbOutputRating.Items? – SimplyZ

+0

設置這個propoerty沒有工作? ComboBox.Sorted = true; –

+0

我剛剛試過這個,它對我很好comboBox1.Items.Add(「a」); comboBox1.Items.Add(「d」); comboBox1.Items.Add(「y」); comboBox1.Items.Add(「b」); comboBox1.Items.Add(「e」); comboBox1.Sorted = true; –

相關問題