私は古いASP.NETプロジェクト(MVCではないと思います)に取り組んでいます。必要な機能の1つは、ドロップダウンリストでアイテムにカーソルを合わせたときにアイテムの説明を表示することです。これは、次のコードを使用し、タイトルテキストを使用して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>
では、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;
}
}
基本的に、施設リストの各施設には、私が取得できるID、名前、説明のプロパティがあります。<option>
レンダリングされるそれぞれにtitle属性を配置し、それに説明を配置できるようにしたいだけです。それか、各<option>
タグに「data-description」などのカスタム属性を追加できる場合は、簡単なjQueryを使用して、各オプションタグにタイトルを自分で追加できます。
リストをループしてカスタムドロップダウンコードを手動で出力できる時代が恋しいです。
何か案は?どうもありがとう