Dynamically Populate Time Drop Downs in ASP.NET
asp.net, c#
Solution
Just use `ToString` with the proper format:
var hours = Enumerable.Range(00, 24).Select(i => i.ToString("D2"));
var minutes = Enumerable.Range(00, 60).Select(i => i.ToString("D2"));
dlOh1OpenHours.DataSource = hours;
ddlOh1OpenHours.DataBind();
ddlOh1OpenMinutes.DataSource = minutes;
ddlOh1OpenMinutes.DataBind();
> Demo <
Standard Numeric Format Strings
Problem
I have a requirement to populate 2 drop down list with hours and minutes. My current method of populating the drop downs doesn't format the numbers correctly as I require the leading 0 for the first 9 number i.e 01,02,03 not 1,2,3 as is currently happening. C# ``` protected override void OnInit(EventArgs e) { base.OnInit(e); if (!IsPostBack) { // Populate and Bind Time drop downs ddlOh1OpenHours.DataSource = Enumerable.Range(00, 24); ddlOh1OpenHours.DataBind(); ddlOh1OpenMinutes.DataSource = Enumerable.Range(00, 60); ddlOh1OpenMinutes.DataBind(); } } ``` ASPX ``` <asp:DropDownList ID="ddlOh1OpenHours" runat="server" /> <span>:</span> <asp:DropDownList ID="ddlOh1OpenMinutes" runat="server" /> ``` Result: ``` <select name="ctl00$MainContent$ddlOh1OpenHours" id="ctl00_MainContent_ddlOh1OpenHours"> <option selected="selected" value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> </select> ```