注册 登录
编程论坛 ASP.NET技术论坛

求助!ASP.NET 实现年月日联动问题

zhuwj 发布于 2011-04-23 11:00, 610 次点击
年和月不需要联动,只要月和日联动就OK了。在月的SelectedIndexChanged事件里根据年和月来动态的添加日的数据。
选择月后,日没有反应
<asp:DropDownList ID="birthYear" runat="server"></asp:DropDownList>年
         <asp:DropDownList ID="birthMonth" runat="server" OnSelectedIndexChanged="birthMonth_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:DropDownList>&nbsp; 月&nbsp;<asp:DropDownList ID="birthDay" runat="server">




protected void birthMonth_SelectedIndexChanged(object sender, EventArgs e)
        {
            birthDay.Items.Clear();
            switch (birthMonth.SelectedValue)
            {
                case "1":
                case "3":
                case "5":
                case "7":
                case "8":
                case "10":
                case "12":
                    for (int i = 1; i <= 31; i++)
                    {
                        birthDay.Items.Add(new ListItem(Convert.ToString(i), Convert.ToString(i)));
                    }
                    break;
                case "4":
                case "6":
                case "9":
                case "11":
                    for (int i = 1; i <= 30; i++)
                    {
                        birthDay.Items.Add(new ListItem(Convert.ToString(i), Convert.ToString(i)));
                    }
                    break;
                case "2":
                    if ((Convert.ToInt32(birthYear.SelectedValue) % 4 == 0) || (Convert.ToInt32(birthYear.SelectedValue) % 100 == 0))
                    {
                        for (int i = 1; i <= 29; i++)
                        {
                            birthDay.Items.Add(new ListItem(Convert.ToString(i), Convert.ToString(i)));
                        };
                    }
                    else
                    {
                        for (int i = 1; i <= 28; i++)
                        {
                            birthDay.Items.Add(new ListItem(Convert.ToString(i), Convert.ToString(i)));
                        };
                    }
                    break;
            }
        }
4 回复
#2
yms1232011-04-25 14:40
年月日联动?年月日一般不需要联动吧?月份只能1-12月,日期只能1-31天,难道LZ想判断润年或润月吗?
#3
yilangcb2011-04-26 16:50
月份的autopostback属性设为true
#4
zhuwj2011-04-30 13:28
可是每次都要刷新后才能够显示出来,有没有更好 的办法?
#5
tomfang2011-05-03 09:44
注意防范漏洞,当没有年份和月份的时候选择天数会报错的。
1