如何通过显示文本在ASP.NET下拉列表中设置所选项?

Ed *_*ehm 18 c# asp.net webforms

我有一个ASP.NET下拉列表,我通过数据绑定填充.我有与我想要选择的列表项目的显示文本相匹配的文本.我显然不能使用SelectedText(仅限getter)而且我不知道索引,所以我不能使用SelectedIndex.我目前正在通过遍历整个列表来选择项目,如下所示:

ASP:

<asp:DropDownList ID="ddItems" runat="server" /> 
Run Code Online (Sandbox Code Playgroud)

码:

ddItems.DataSource = myItemCollection;
ddItems.DataTextField = "Name";
ddItems.DataValueField = "Id";

foreach (ListItem item in ddItems.Items)
{
    if (item.Text == textToSelect)
    {
        item.Selected = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在不迭代所有项目的情况下执行此操作?

kbr*_*ton 46

你可以试试:

ddItems.Items.FindByText("Hello, World!").Selected = true;
Run Code Online (Sandbox Code Playgroud)

要么:

ddItems.SelectedValue = ddItems.Items.FindByText("Hello, World!").Value;
Run Code Online (Sandbox Code Playgroud)

请注意,如果您不确定某个项目是否与您的显示文字相匹配,则可能需要检查FindByText()for 的结果null.

请注意,我在多选列表上使用第一种方法,例如CheckBoxList添加其他选择.我使用第二种方法来覆盖所有选择.