有没有办法减少这个特定的代码?

时间:2016-09-21 09:06:59

标签: asp.net .net date

我想制作注册页面,其中我将给出生日期作为选项。以下是我用来选择day.I的下拉列表代码。我想尽可能地缩短。建议。< / p>

<asp:DropDownList ID="days" runat="server" AutoPostBack="True" 
 OnSelectedIndexChanged="days_SelectedIndexChanged" >

   <asp:ListItem>1</asp:ListItem>
   <asp:ListItem>2</asp:ListItem>
   <asp:ListItem>3</asp:ListItem>
   <asp:ListItem>4</asp:ListItem>
   <asp:ListItem>5</asp:ListItem>
   <asp:ListItem>6</asp:ListItem>
   <asp:ListItem>7</asp:ListItem>
   <asp:ListItem>8</asp:ListItem>
   <asp:ListItem>9</asp:ListItem>
   <asp:ListItem>10</asp:ListItem>
   <asp:ListItem>11</asp:ListItem>
   <asp:ListItem>12</asp:ListItem>
   <asp:ListItem>13</asp:ListItem>
   <asp:ListItem>14</asp:ListItem>
   <asp:ListItem>15</asp:ListItem>
   <asp:ListItem>16</asp:ListItem>
   <asp:ListItem>17</asp:ListItem>
   <asp:ListItem>18</asp:ListItem>
   <asp:ListItem>19</asp:ListItem>
   <asp:ListItem>20</asp:ListItem>
   <asp:ListItem>21</asp:ListItem>
   <asp:ListItem>22</asp:ListItem>
   <asp:ListItem>23</asp:ListItem>
   <asp:ListItem>24</asp:ListItem>
   <asp:ListItem>25</asp:ListItem>
   <asp:ListItem>26</asp:ListItem>
   <asp:ListItem>27</asp:ListItem>
   <asp:ListItem>28</asp:ListItem>
   <asp:ListItem>29</asp:ListItem>
   <asp:ListItem>30</asp:ListItem>
   <asp:ListItem>31</asp:ListItem>
</asp:DropDownList>

3 个答案:

答案 0 :(得分:0)

使用以下代码:

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        BindDays();
    }
}

void BindDays()
{
    for(int i=1; i<=31; i++)
    {
        days.Items.Add(new ListItem(i.ToString()));
    }
}

答案 1 :(得分:0)

答案 2 :(得分:-1)

31天的下拉菜单最终总会有31个选项,如果您不想手动填充,请使用javascript / jquery或代码隐藏。

<强>实施例

对于javascript:see here

var min = 1,
    max = 31,
    select = document.getElementById('selectElementId');

for (var i = min; i<=max; i++){
    var opt = document.createElement('option');
    opt.value = i;
    opt.innerHTML = i;
    select.appendChild(opt);
}

对于c#:see here 你应该想出这样的东西:

for (int i = 1; i < 32; i++)
{
    days.Items.Add(new ListItem(i.ToString(), i.ToString()));
}