用户输入文本后如何对组合框进行排序
How do I sort a combobox after a user inputs text
我有组合框,用户可以在其中输入文本或从列表中输入 select。当用户输入他们自己的文本时,而不是它显示在下拉列表的底部或顶部,我希望它以正确的顺序出现。例如,如果用户输入 24,我希望它出现在 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();
}
}
C# - is it possible to arrange ComboBox Items from a to z?
如果您使用的是 Win Forms,只需使用 ComboBox.Sorted = true;
如果你的组合框中的数据来自于列表的形式,那么在你要放入组合框的数据列表中使用OrderBy,然后再放入它。
示例:
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());
我没有执行 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());
我有组合框,用户可以在其中输入文本或从列表中输入 select。当用户输入他们自己的文本时,而不是它显示在下拉列表的底部或顶部,我希望它以正确的顺序出现。例如,如果用户输入 24,我希望它出现在 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();
}
}
C# - is it possible to arrange ComboBox Items from a to z?
如果您使用的是 Win Forms,只需使用 ComboBox.Sorted = true;
如果你的组合框中的数据来自于列表的形式,那么在你要放入组合框的数据列表中使用OrderBy,然后再放入它。 示例:
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());
我没有执行 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());