C# 如何从列表集合中设置多值下拉列表

C# 如何从列表集合中设置多值下拉列表,c#,asp.net,C#,Asp.net,如何从列表集合设置多值下拉列表 数据源:包含颜色代码和说明的Listcollection 如何设置带有颜色代码描述的下拉列表,如ORG orange 然后,如何仅通过删除用于更新目的的描述来捕获这些选定值作为颜色代码 现在我就这样做 ddl.datesource=list<datasetvalues> // ...contains (colorcode, description) ddl.DataTextField = "ColorCode"; ddl.DataValueField

如何从列表集合设置多值下拉列表

数据源:包含颜色代码和说明的Listcollection

如何设置带有颜色代码描述的下拉列表,如ORG orange

然后,如何仅通过删除用于更新目的的描述来捕获这些选定值作为颜色代码

现在我就这样做

ddl.datesource=list<datasetvalues> // ...contains (colorcode, description)

ddl.DataTextField = "ColorCode";
ddl.DataValueField = "ColorCode";
ddl.databind();
ddlcolor.Items.FindByValue((DataBinder.Eval(formView1.DataItem,
        "colorCode").ToString())).Selected = true;
更新内容:

ClassA.Color= ddl.selectedvalue();

现在我需要修改上面代码中的内容,以获得两者的组合。否则,我需要有文本框用于描述,它与ddl同步。这对于我的编程水平来说有点复杂…谢谢。

根据我的知识,有一些解决方案

1) 在使用For/Foreach准备列表时,可以像:Code+“-”+值那样连接文本。。。环路

2)如果按照项目允许,您也可以考虑在实体内部重写字符串,但所选值将用连字符(带有-In代码和值)字符串,需要在代码后面字符串拆分。

public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                List<CodeValue> colors = new List<CodeValue> {new CodeValue{Code="",Value="Select"},new CodeValue{Code="RD",Value="Red"},
            new CodeValue{Code="BL",Value="Blue"}};
                ddlColors.DataSource = colors;
                ddlColors.DataBind();
            }
        }

        protected void btnClick_Click(object sender, EventArgs e)
        {
            var item = ddlColors.SelectedValue;
            var code = item.Split('-');
        }
    }

    class CodeValue
    {
        public string Code { get; set; }
        public string Value { get; set; }
        public override string ToString()
        {
            return this.Code + "-" + this.Value;
        }
    }
public分部类\u默认值:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!Page.IsPostBack)
{
List colors=new List{new CodeValue{Code=”,Value=“Select”},new CodeValue{Code=“RD”,Value=“Red”},
新代码值{Code=“BL”,Value=“Blue”};
ddlColors.DataSource=颜色;
ddlColors.DataBind();
}
}
受保护的无效B单击(对象发送者,事件参数e)
{
var item=ddlColors.SelectedValue;
var代码=项目拆分('-');
}
}
类代码值
{
公共字符串代码{get;set;}
公共字符串值{get;set;}
公共重写字符串ToString()
{
返回此.Code+“-”+此.Value;
}
}

根据我的知识,有几种解决方案

1) 在使用For/Foreach准备列表时,可以像:Code+“-”+值那样连接文本。。。环路

2)如果按照项目允许,您也可以考虑在实体内部重写字符串,但所选值将用连字符(带有-In代码和值)字符串,需要在代码后面字符串拆分。

public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                List<CodeValue> colors = new List<CodeValue> {new CodeValue{Code="",Value="Select"},new CodeValue{Code="RD",Value="Red"},
            new CodeValue{Code="BL",Value="Blue"}};
                ddlColors.DataSource = colors;
                ddlColors.DataBind();
            }
        }

        protected void btnClick_Click(object sender, EventArgs e)
        {
            var item = ddlColors.SelectedValue;
            var code = item.Split('-');
        }
    }

    class CodeValue
    {
        public string Code { get; set; }
        public string Value { get; set; }
        public override string ToString()
        {
            return this.Code + "-" + this.Value;
        }
    }
public分部类\u默认值:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!Page.IsPostBack)
{
List colors=new List{new CodeValue{Code=”,Value=“Select”},new CodeValue{Code=“RD”,Value=“Red”},
新代码值{Code=“BL”,Value=“Blue”};
ddlColors.DataSource=颜色;
ddlColors.DataBind();
}
}
受保护的无效B单击(对象发送者,事件参数e)
{
var item=ddlColors.SelectedValue;
var代码=项目拆分('-');
}
}
类代码值
{
公共字符串代码{get;set;}
公共字符串值{get;set;}
公共重写字符串ToString()
{
返回此.Code+“-”+此.Value;
}
}