标题:ASP.NET 年月日实现联动
只看楼主
zhuwj
Rank: 2
来 自:江苏
等 级:论坛游民
威 望:1
帖 子:63
专家分:58
注 册:2010-11-18
结帖率:64.71%
 问题点数:0 回复次数:6 
ASP.NET 年月日实现联动
年和月不需要联动,只要月和日联动就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;
            }
        }
搜索更多相关主题的帖子: 年月日 
2011-04-23 10:58
永强
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-5-9
得分:0 
有可以不刷新的方法啊!用个updatepanel咯!
2011-05-09 15:33
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
得分:0 
你在birthMonth这个控件中添加个属性:AutoP开头的, 我不记得咋个写了,你自己看看,意思就是:当当前项改变时是否回发,就是这个意思,你找找嘛,将其设置为True,应该就可以了。

还有,其实你的月份那样子在前台写了12个月,很麻烦,也不是很标准,虽然没有错,你可以在后台加载的时候将12个月添加进去就行了,
 for (int i = 1; i <= 12; i++)
   {
      birthMonth.Items.Add(new ListItem(Convert.ToString(i), Convert.ToString(i)));
   }
这样子,代码更加标准点,而且也少些噻,呵呵...

2011-05-09 19:18
zklwzh
Rank: 2
等 级:论坛游民
帖 子:275
专家分:25
注 册:2005-11-16
得分:0 
建议你搜索下相关js来实现。

2011-05-13 12:53
VV程序员
Rank: 1
等 级:新手上路
帖 子:20
专家分:1
注 册:2009-1-14
得分:0 
<asp:DropDownList ID="birthMonth" runat="server" OnSelectedIndexChanged="birthMonth_SelectedIndexChanged" AutoPostback="true">
2011-05-13 17:05
VV程序员
Rank: 1
等 级:新手上路
帖 子:20
专家分:1
注 册:2009-1-14
得分:0 
<asp:DropDownList ID="birthMonth" runat="server" OnSelectedIndexChanged="birthMonth_SelectedIndexChanged" AutoPostback="true">
2011-05-13 17:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-337654-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.383273 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved