首页 > 解决方案 > Asp.net 下拉列表 - Listitem - 资源文件 - 值

问题描述

我有一个简单的下拉列表,我想用 Resource.resx 文件中的值填充这个下拉列表。

创建资源文件并添加值,每个值都用“,”分隔,这不是问题,而是将每个项目显示为下拉菜单的可选选项。

我的 html 代码如下所示:

<asp:DropDownList runat="server" ID="DDL1">
<asp:ListItem  Text="<%$Resources:DropDown, Abteilungen%>"></asp:ListItem>

注意Abteilungen 只是标题!

这就是我想要做的:

List<SelectListItem> items = new List<SelectListItem>();
                foreach (string s in Resources.DropDown.Abteilungen.Split(new char[] { ',' }))
                {
                    items.Add(new SelectListItem() { Text = s, Value = s });
                    DDL1.Text = s.ToString();
                }

结果是:下拉列表只显示完整的值(Value1、Value2、Value3 等)。

但不是每个值都作为可选项目。

谁能帮我这个?

标签: c#asp.netresourcesdropdownlistfor

解决方案


想象...

  • 您有 1 条记录:“键、值”
  • 你拆分它和 s = "Key"
  • 您将 Text 和 Value 分配为:Text = s (Text = "Key"), Value = s (Value = "Key")

取而代之的是,使用以下逻辑:

  • 您有 1 条记录:“键、值”
  • 您将其写入 s 变量。结果:s =“键,值”
  • 您将其拆分并分配如下: Text = s[0] (Text = "Key"), Value = s[1] (Value = "Value")

    List<SelectListItem> items = new List<SelectListItem>();
    foreach (string s in YOUR_COLLECTION)
    {
        string[] keyValue = s.Split(new char[] { ',' })
        items.Add(new SelectListItem() { Text = keyValue[0], Value = keyValue[1] });
    }
    

推荐阅读