2015-06-25 32 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; –

相关问题