ASP.NET C# 如何 Select 通过从数据库检索的字符串动态地按文本列出项目

ASP.NET C# How to Select List Item by Text dynamically through string retrieved from database

我有一个字符串,它从数据集 ds

中获取值
string maritalStatus = ds.Tables[0].Rows[0]["maritalStatus"].toString();

现在我如何 select 动态地从文本值中列出项目。

<asp:DropDownList ID="ddlMaritalStatus" runat="server"
OnSelectedIndexChanged="ddlMaritalStatus_SelectedIndexChanged">
<asp:ListItem Text="Single" Value="0"></asp:ListItem>
<asp:ListItem Text="Divorced" Value="1"></asp:ListItem>
<asp:ListItem Text="Separated" Value="2"></asp:ListItem>
<asp:ListItem Text="Widowed" Value="3"></asp:ListItem>

我也必须为许多其他下拉菜单执行此操作。而且有些值不是按顺序排列的。我试过了

ddlMaritalStatus.SelectedItem.Text = maritalStatus;

但此代码无效。它所做的只是将 selected 列表项的文本即 "Single" 更改为来自数据库的文本。

您首先需要将可能的值映射到字典,因为此项的值是整数,如下所示:

Dictionary<string, int> statusMap = new Dictionary<string, int>(),

statusMap.Add("Single", 0);
statusMap.Add("Divorced", 1);
//And so on..

然后可以设置下拉框的SelectedValue:

ddlMaritalStatus.SelectedValue = statusMap[maritalStatus].ToString();