DropDown C#

时间:2018-04-10 16:22:46

标签: c# dropdown

在下拉菜单中,我找到了此类型的国家/地区列表: 文字:"意大利"价值:" IT" 我需要列表顶部的一个国家/地区的副本,这个国家/地区是我工作的门户网站的当前语言,因此用户可以选择第一个或一个进入列表。只是我们可以说的暗示。 所以我只是以这种方式添加了一个副本:

cmbNazione.Items.Insert(0, cmbNazione.Items.FindByText(valori.Rows[0]["M_SOAAuthorityCountry"].ToString().ToUpper()));}

此代码工作正常。我得到了我的重复值,我可以毫无问题地选择它。

当我已经拥有一个我必须设置为dropDown的国家时,我陷入困境。 我刚才写道:

cmbNazione.Items.Insert(0, cmbNazione.Items.FindByText(valori.Rows[0]["M_SOAAuthorityCountry"].ToString().ToUpper()));
cmbNazione.ClearSelection();
cmbNazione.Items.FindByText(valori.Rows[0]["M_SOAAuthorityCountry"].ToString().ToUpper()).Selected = true;

问题是我收到错误:DropDownList中没有选择多个项目。 事实上,如果我检查我得到了两个列表项(第一个,列表中的相同)与prop:selected = true。如果我试图使一个假,则改为假。我不能单独使用它们。 当我作为用户手动选择时,我无法理解为什么我可以正确使用它们,但是当我尝试通过代码选择它们时却不能。 我也尝试过这样的事情:

cmbNazione.SelectedIndex = cmbNazione.Items.IndexOf(cmbNazione.Items.FindByText(valori.Rows[0]["M_SOAAuthorityCountry"].ToString().ToUpper()));

但没有。我每次都会在所选的

列表中有多个项目

1 个答案:

答案 0 :(得分:0)

您不应该有重复的值,因为它会使用户感到困惑(如果值已经在2-3位置),而架构作为检索可能会导致选择2个值。

您的用例似乎是您提供最常用的值作为第一个,然后是剩下的。如果是这种情况,请遵循下面列出的方法。

找到所需的ListItem,然后将其从列表中删除并添加到第1个位置。然后将其标记为已选中。

var preferredItem = cmbNazione.Items.FindByText(...);
if (preferredItem != null) {
   cmbNazione.Items.Remove(preferredItem);
   cmbNazione.Items.Insert(0, preferredItem);
   cmbNazione.SelectedItemIndex = 0;
}

这样,将会选择单个项目并保留项目的神圣性(基础值等),同时仍然允许用户在列表顶部拥有首选项目。您可以选择将其设置为“预先选择”或让用户明确选择它。