如何在asp.net下拉列表中添加额外的属性字段

时间:2013-01-09 02:09:57

标签: c# asp.net c#-4.0 drop-down-menu field

下面我可以设置值和文字:

dropListUserImages.DataValueField = "Value";
dropListUserImages.DataTextField = "Text";
dropListUserImages.Items.Add(new ListItem { Text = srText, Value = srValue});

我还想设置额外的属性,例如:

data-imagesrc
data-description 

我该怎么做?

2 个答案:

答案 0 :(得分:17)

使用:

ListItem test  = new ListItem { Text = srText, Value = srValue}
test.Attributes.Add("data-imagesrc", "xxx");
test.Attributes.Add("data-description", "xxx");
dropListUserImages.Items.Add(test);

答案 1 :(得分:1)

将复杂的对象列表转换为可以在前端读取的值时,我遇到了同样的挑战,我使用了类似于以下内容的逻辑,发现它非常有用,因为它可以适应每种类型的对象:

//Object can be whichever type as you wish
List<Object> example = new List<Object>();

var listItemExamples = example
    .Select(a => new Func<ListItem>(() => {
                ListItem item = new ListItem(a.PropropertyA.ToString(), a.PropropertyB.ToString() );
                item.Attributes["data-PropropertyC"] = a.PropropertyC.ToString();
                return item;
            })())
    .ToArray();

dropListUserImages.Items.AddRange(listItemExamples);