如何向ASP.NET DropDownList的每个选项添加标题属性

如何向ASP.NET DropDownList的每个选项添加标题属性,asp.net,html-select,Asp.net,Html Select,我正在处理一个较旧的ASP.NET项目(我不认为是MVC),他们需要的功能之一是在下拉列表中将鼠标悬停在某个项目上时查看该项目的描述。这可以简单地通过HTML使用以下代码并使用标题文本来完成: <select> <option value="1" title="Option 1 Desc">Option 1</option> <option value="2" title="Option 2 Desc">Option 2</o

我正在处理一个较旧的ASP.NET项目(我不认为是MVC),他们需要的功能之一是在下拉列表中将鼠标悬停在某个项目上时查看该项目的描述。这可以简单地通过HTML使用以下代码并使用标题文本来完成:

<select>
    <option value="1" title="Option 1 Desc">Option 1</option>
    <option value="2" title="Option 2 Desc">Option 2</option>
    <option value="3" title="Option 3 Desc">Option 3</option>
</select>

选择1
选择2
选择3
好的,那么如何使用ASP.NET DropDownList控件实现这一点呢?我有以下代码:

<asp:DropDownList ID="DropDownListLocation" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownListLocation_OnSelectedIndexChanged" CssClass="editorFieldServerControl" ClientIDMode="Static"></asp:DropDownList>

在“代码隐藏”页面中:

private void PopulateFacilityDropdown(List<FacilityAvailableByLocation> facilities, int? selectedID)
{
    DropDownListFacility.DataSource = facilities;
    DropDownListFacility.DataTextField = "FacilityName";
    DropDownListFacility.DataValueField = "FacilityID";
    DropDownListFacility.DataBind();            
    DropDownListFacility.Items.Insert(0, new System.Web.UI.WebControls.ListItem("", ""));                   

    if (selectedID.HasValue && selectedID.Value > 0)
        DropDownListFacility.SelectedIndex = facilities.FindIndex(b => b.FacilityID == selectedID.Value);
        else DropDownListFacility.SelectedIndex = 0;
    }
}
private void PopulateFacilityDropdown(列出设施,int?selectedID)
{
DropDownListFacility.DataSource=设施;
DropDownListFacility.DataTextField=“FacilityName”;
DropDownListFacility.DataValueField=“FacilityID”;
DropDownListFacility.DataBind();
DropDownListFacility.Items.Insert(0,new System.Web.UI.WebControls.ListItem(“,”);
如果(selectedID.HasValue&&selectedID.Value>0)
DropDownListFacility.SelectedIndex=facilities.FindIndex(b=>b.FacilityID==selectedID.Value);
else DropDownListFacility.SelectedIndex=0;
}
}
基本上,那里的设施列表中的每个设施都有一个ID、名称和描述的属性,我可以从中获取。我只希望能够在渲染的每个
上放置一个title属性,并将描述放入其中。或者可以为每个
标记添加自定义属性,如“数据描述”,然后我可以使用jQuery将标题添加到每个选项标记中,这非常简单

我怀念那些你可以循环浏览列表并手动输出自定义下拉代码的日子


有什么想法吗?非常感谢

您可以像这样手动为每个列表项添加标题属性。试一试:

    private void PopulateFacilityDropdown(List<FacilityAvailableByLocation> facilities, int? selectedID)
    {
        DropDownListFacility.DataSource = facilities;
        DropDownListFacility.DataTextField = "FacilityName";
        DropDownListFacility.DataValueField = "FacilityID";
        DropDownListFacility.DataBind();            
        DropDownListFacility.Items.Insert(0, new System.Web.UI.WebControls.ListItem(String.Empty, String.Empty);                   

        foreach (FacilityAvailableByLocation f in facilities)
        {
            DropDownListFacility.Items.FindByValue(f.FacilityID).Attributes.Add("title", f.TitleDescription);
        }

        if (selectedID.HasValue && selectedID.Value > 0)
            DropDownListFacility.SelectedIndex = facilities.FindIndex(b => b.FacilityID == selectedID.Value);
            else DropDownListFacility.SelectedIndex = 0;
        }
    }
private void PopulateFacilityDropdown(列出设施,int?selectedID)
{
DropDownListFacility.DataSource=设施;
DropDownListFacility.DataTextField=“FacilityName”;
DropDownListFacility.DataValueField=“FacilityID”;
DropDownListFacility.DataBind();
DropDownListFacility.Items.Insert(0,new System.Web.UI.WebControls.ListItem(String.Empty,String.Empty);
foreach(设施中的f位置提供的设施)
{
DropDownListFacility.Items.FindByValue(f.FacilityID).Attributes.Add(“title”,f.TitleDescription);
}
如果(selectedID.HasValue&&selectedID.Value>0)
DropDownListFacility.SelectedIndex=facilities.FindIndex(b=>b.FacilityID==selectedID.Value);
else DropDownListFacility.SelectedIndex=0;
}
}
f、 TitleDescription将是您希望标题成为的属性