• DropDownList 年月日联动


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace Text
    {
        public partial class InsusDate : System.Web.UI.UserControl
        {
            private int? _year;
            private int? _month;
            private int? _day;
    
            public int? Year
            {
                get
                {
                    if (ViewState["Year"] != null)
                    {
                        return Convert.ToInt32(ViewState["Year"]);
                    }
    
                    if (this.DropDownListYear.SelectedIndex == -1 || string.IsNullOrEmpty(this.DropDownListYear.SelectedItem.Value))
                        return null;
                    else
                        return Convert.ToInt32(this.DropDownListYear.SelectedItem.Value);
                }
                set
                {
                    ViewState["Year"] = value;
                }
            }
    
            public int? Month
            {
                get
                {
                    if (ViewState["Month"] != null)
                    {
                        return Convert.ToInt32(ViewState["Month"]);
                    }
                    if (this.DropDownListMonth.SelectedIndex == -1 || string.IsNullOrEmpty(this.DropDownListMonth.SelectedItem.Value))
                        return null;
                    else
                        return Convert.ToInt32(this.DropDownListMonth.SelectedItem.Value);
    
                }
                set
                {
                    ViewState["Month"] = value;
                }
            }
    
            public int? Day
            {
                get
                {
                    if (ViewState["Day"] != null)
                    {
                        return Convert.ToInt32(ViewState["Day"]);
                    }
                    if (this.DropDownListDay.SelectedIndex == -1 || string.IsNullOrEmpty(this.DropDownListDay.SelectedItem.Value))
                        return null;
                    else
                        return Convert.ToInt32(this.DropDownListDay.SelectedItem.Value);
                }
                set
                {
                    ViewState["Day"] = value;
                }
            }
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    Data_Binding();
                }
            }
            /// <summary>
            /// 数据的绑定
            /// </summary>
            private void Data_Binding()
            {
                DropDownlistParse(this.DropDownListYear, i_Year.Select(y => new { v = y }).ToList(), "v", "v");
                DropDownlistParse(this.DropDownListMonth, i_Month.Select(m => new { v = m }).ToList(), "v", "v");
                this.DropDownListDay.Items.Insert(0, new ListItem(string.Empty, string.Empty));
            }
    
            protected void DropDownListYear_SelectedIndexChanged(object sender, EventArgs e)
            {
                DayDataBinding();
            }
    
            protected void DropDownListMonth_SelectedIndexChanged(object sender, EventArgs e)
            {
                DayDataBinding();
            }
            /// <summary>
            /// 在年或月DropDownlist控件有异动时,作相应对日的DropDownList控件数据绑定:
            /// </summary>
            private void DayDataBinding()
            {
                if (this.DropDownListYear.SelectedIndex == -1 || string.IsNullOrEmpty(this.DropDownListYear.SelectedItem.Value))
                    return;
                if (this.DropDownListMonth.SelectedIndex == -1 || string.IsNullOrEmpty(this.DropDownListMonth.SelectedItem.Value))
                    return;
    
                int y = Convert.ToInt32(this.DropDownListYear.SelectedItem.Value);
                int m = Convert.ToInt32(this.DropDownListMonth.SelectedItem.Value);
                ///i_Day(y, m).Select(d => new { v = d }).ToList()把原来的1  转为 v=1,这个数据源就有了v属性
                DropDownlistParse(this.DropDownListDay, i_Day(y, m).Select(d => new { v = d }).ToList(), "v", "v");
            }
            /// <summary>
            /// DropDownLIst数据绑定
            /// </summary>
            /// <param name="ddl">DropDownList</param>
            /// <param name="dataSource">数据源</param>
            /// <param name="dataTextField"></param>
            /// <param name="dataValueField"></param>
            private void DropDownlistParse(DropDownList ddl, object dataSource, string dataTextField, string dataValueField)
            {
                ddl.DataSource = dataSource;
                ddl.DataTextField = dataTextField;
                ddl.DataValueField = dataValueField;
                ddl.DataBind();
                ddl.Items.Insert(0, new ListItem(string.Empty, string.Empty));
            }
    
            List<int> i_Year
            {
                get
                {
                    List<int> y = new List<int>();
                    int Ny = DateTime.Now.Year;
                    for (int i = 1953; i <= Ny; i++)
                    {
                        y.Add(i);
                    }
                    return y;
                }
            }
    
            List<int> i_Month
            {
                get
                {
                    List<int> m = new List<int>();
                    for (int i = 1; i <= 12; i++)
                    {
                        m.Add(i);
                    }
                    return m;
                }
            }
            /// <summary>
            /// 根据年月获得Day的List
            /// </summary>
            /// <param name="year"></param>
            /// <param name="month"></param>
            /// <returns></returns>
            public List<int> i_Day(int year, int month)
            {
                int days = DateTime.DaysInMonth(year, month);
                List<int> d = new List<int>();
    
                for (int i = 1; i <= days; i++)
                {
                    d.Add(i);
                }
                return d;
            }
        }
    }

    控件的前端页面是

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="InsusDate.ascx.cs" Inherits="Text.InsusDate" %>
    <asp:DropDownList ID="DropDownListYear" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownListYear_SelectedIndexChanged"
        Width="60px">
    </asp:DropDownList>
    年<asp:DropDownList ID="DropDownListMonth" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownListMonth_SelectedIndexChanged"
        Width="40PX">
    </asp:DropDownList>
    月<asp:DropDownList ID="DropDownListDay" runat="server" Width="40PX">
    </asp:DropDownList>

     用户控件,当使用的时候,拖到页面就可以了

  • 相关阅读:
    iOS uiscrollView 嵌套 问题 的解决
    NSURLConnection 网络超时的那些事(转别人整理的)
    IOS 开发中判断NSString是否为空字符
    iOS- SQLite3的基本使用
    怎么应对 domino文档损坏然后损坏文档别删除导致数据丢失
    为什么Log.nsf中存储的日志只有最近7天的原因
    Struts,Spring,Hibernate优缺点
    Java面试之List的三个子类ArrayList,LinkedList,Vector区别
    Java面试之同步/异步/阻塞/非阻塞/BIO/NIO/AIO
    如何设置 Windows 开机启动项
  • 原文地址:https://www.cnblogs.com/nanxiaoxiang/p/2727251.html
Copyright © 2020-2023  润新知