如何为任何asp:ListItem分配ID

时间:2017-04-16 05:30:17

标签: c# asp.net webforms

我有一个下拉列表,我想为每个listitem分配一个id

<asp:DropDownList id="ATime" runat="server" CssClass="form-control">
<asp:ListItem>--Select--</asp:ListItem>
<asp:ListItem>8AM-2PM</asp:ListItem>
<asp:ListItem>9AM-5PM</asp:ListItem>
<asp:ListItem>6PM-12AM</asp:ListItem>
<asp:ListItem>3PM-9PM</asp:ListItem>
<asp:ListItem>Other</asp:ListItem>
</asp:DropDownList>

3 个答案:

答案 0 :(得分:2)

ListItem 没有 ID 属性,因为它不是从控件派生的,因此它没有 ID

如果要搜索从ListItemCollection(Items属性)发布的ListItem值,那么你可以这样做 -

Dim listItem As ListItem = ATime.Items.FindByValue(Request.Form("9AM-5PM"));

答案 1 :(得分:0)

您可以使用列表项选项Id添加元素Attributes。渲染的HTML元素将会传入您的身份。

    protected void Page_Load(object sender, EventArgs e)
    {
        ListItem listItem = new ListItem("Item 1");
        listItem.Attributes.Add("id", "ListItem-1");
        ATime.Items.Add(listItem);
    }

答案 2 :(得分:0)

如果您的意思是将ID作为列表项的属性,那么当然,您可以这样做。您需要使用Attributes ListItem的集合,方法如下。

int idx = 0;
foreach(ListItem item in ddl.Items)
{
   // if you'd like the id populated with the text value
   item.Attributes.Add("id", item.Text);
   // if you'd like the id populated with the index value
   //item.Attributes.Add("id", idx.ToString()); 
   idx++;
}