首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

3个dropdownlist控件 怎么从数据库中读取datetime列并且正确分别绑定年月日

2013-03-01 
3个dropdownlist控件 如何从数据库中读取datetime列并且正确分别绑定年月日RT 在网上找了个 3个dropdownli

3个dropdownlist控件 如何从数据库中读取datetime列并且正确分别绑定年月日
RT 
在网上找了个 3个dropdownlist控件绑定年月日的 代码,能够正确实现年月日的显示。核心代码:


public void ddlBindYMD()
     {
         DateTime tnow = DateTime.Now;//现在时间
         ArrayList AlYear = new ArrayList();
         ArrayList AlMonth = new ArrayList();
         for (int i = tnow.Year; i >=2000; i--) AlYear.Add(i);
         for (int i = 1; i <= 12; i++) AlMonth.Add(i);
         //绑定年
         ddl_y.DataSource = AlYear;
         ddl_y.DataBind();
         ddl_y.SelectedValue = tnow.Year.ToString();
         //绑定月
         ddl_m.DataSource = AlMonth;
         ddl_m.DataBind();
         ddl_m.SelectedValue = tnow.Month.ToString();
         int year=-1;
         int month=-1;
         year = Int32.Parse(ddl_y.SelectedValue);
         month = Int32.Parse(ddl_m.SelectedValue);
         //ddl_d.SelectedValue = tnow.Day.ToString();
          BindDays(year, month); //根据年月 绑定 日期
     }

现在的问题是 我想实现一个修改 功能 1: 读取出 存在 数据库datetime列中的某一个数据,能够分别显示在 3个dropdownlist中 2:当我点击3个dropdownlist的下拉菜单时候 还能显示出我上面代码中绑定的年月。

//这是我从数据库中 分别读取出来的 年 月 日
string year =Convert.ToString((DateTime)model.ReleaseDate).Year)) ;
string month=Convert.ToString((DateTime)model.ReleaseDate).Month)) ;
 string day =Convert.ToString((DateTime)model.ReleaseDate).Day))  ;

[解决办法]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>简单的数据列表举例</title>
    <script src="Js/jquery-1.4.2.min.js" type="text/javascript"></script>
    <style type="text/css">
        input, textarea {width: 100px;border-top: solid 1px #999;border-right: solid 1px #CCC;border-left: solid 1px #CCC;
                    border-bottom: solid 1px #EEE;padding: 5px 8px;border-radius: 2px;line-height: 12px;color: #999;vertical-align: middle;}
        select {border-top: solid 1px #999;border-right: solid 1px #CCC;border-left: solid 1px #CCC;border-bottom: solid 1px #EEE;


                padding: 5px 8px;border-radius: 2px;color: #999;vertical-align: middle;}
        .button{width: 67px; height: 30px; border: 0 none; background-color: #FFAE00; font-weight: bold; color: white;}
    </style>
    
</head>
<body>
    <form id="form1" runat="server">
    <div class="content">
        <p><asp:TextBox runat="server" ID="txty" style="width:60px;" Text="2008" />&nbsp;
        <asp:TextBox runat="server" ID="txtm" style="width:60px;" Text="8" />&nbsp;
        <asp:TextBox runat="server" ID="txtd" style="width:60px;" Text="8" /> 
        <asp:Button runat="server" ID="btnTest" CssClass="button" Text="测试" onclick="btnTest_Click" /></p>
        <p>            
            <asp:DropDownList runat="server" ID="ddl_y" Width="118" AutoPostBack="true" 
                onselectedindexchanged="ddl_y_SelectedIndexChanged"></asp:DropDownList>
            <asp:DropDownList runat="server" ID="ddl_m" Width="118" AutoPostBack="true" 
                onselectedindexchanged="ddl_m_SelectedIndexChanged"></asp:DropDownList>
            <asp:DropDownList runat="server" ID="ddl_d" Width="118"></asp:DropDownList>
        </p>
    </div>
    </form>
    <script type="text/javascript">
       
    </script>
</body>
</html>




protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlBindY();
                ddlBindM();
                BindDays(Int32.Parse(ddl_y.SelectedValue), Int32.Parse(ddl_m.SelectedValue));
            }
        }

        public DateTime tnow = DateTime.Now;//现在时间
        public void ddlBindY()
        {
            ArrayList AlYear = new ArrayList();


            for (int i = tnow.Year; i >= 2000; i--) AlYear.Add(i);
            //绑定年
            ddl_y.DataSource = AlYear;
            ddl_y.DataBind();
            ddl_y.SelectedValue = tnow.Year.ToString();
        }
        public void ddlBindM()
        {
            ArrayList AlMonth = new ArrayList();
            for (int i = 1; i <= 12; i++) AlMonth.Add(i);

            //绑定月
            ddl_m.DataSource = AlMonth;
            ddl_m.DataBind();
            ddl_m.SelectedValue = tnow.Month.ToString();
        }

        private void BindDays(int year, int month)
        {
            int days = DateTime.DaysInMonth(year, month);
            ArrayList ardate = new ArrayList();
            for (int i = 1; i <= days; i++) ardate.Add(i);

            ddl_d.DataSource = ardate;
            ddl_d.DataBind();
        }

        protected void ddl_y_SelectedIndexChanged(object sender, EventArgs e)
        {
            BindDays(Int32.Parse(ddl_y.SelectedValue), Int32.Parse(ddl_m.SelectedValue));
        }

        protected void ddl_m_SelectedIndexChanged(object sender, EventArgs e)
        {
            BindDays(Int32.Parse(ddl_y.SelectedValue), Int32.Parse(ddl_m.SelectedValue));
        }

        //绑定
        protected void btnTest_Click(object sender, EventArgs e)
        {
            ddl_y.SelectedValue = this.txty.Text;
            ddl_m.SelectedValue = this.txtm.Text;
            BindDays(Int32.Parse(ddl_y.SelectedValue), Int32.Parse(ddl_m.SelectedValue));
            ddl_d.SelectedValue = this.txtm.Text;


        }



楼主记得给分啊
[解决办法]
完整控件代码

<%@ Control Language="C#" AutoEventWireup="true" Inherits="Controls_DatePicker" Codebehind="DatePicker.ascx.cs" %>
<asp:DropDownList runat="server" ID="dwYear"></asp:DropDownList>&nbsp;
<asp:DropDownList runat="server" ID="dwMonth"></asp:DropDownList>&nbsp;
<asp:DropDownList runat="server" ID="dwDay" ></asp:DropDownList>




using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Controls_DatePicker : System.Web.UI.UserControl
{
    private string _Year, _Month, _Day,_text;
    private int _MinYear, _MaxYear;
    private string _style = "ymd";  //控件显示样式
    private int MAXYEAR = 1;   //默认年份
    private int MINYEAR = - 5;
    
    #region 设置或返回此控件的值
    /// <summary>
    /// 设置或返回此控件的值
    /// </summary>
    public string Text
    {
        get
        {
            string temp = "";
            if (dwDay.Visible)
            { temp= this.dwYear.Text + "-" + this.dwMonth.Text + "-" + this.dwDay.Text; }
            else
            {
                if (dwMonth.Visible)
                {
                    temp= this.dwYear.Text + "-" + this.dwMonth.Text + "-01";
                }
                else
                {
                    temp= dwYear.Text + "-01-01";
                }
            }
            return temp;
            //if (Galsun.InputCheck.IsTrueDate(temp))
            //{


            //    return temp;
            //}
            //else
            //{
            //    Response.Write("<script>alert('不是有效的日期!');</script>");
            //    return "2007-1-1";
            //}
        }
        set
        {
            _text = value;
            setText(value);
            
        }
    }
    private void setText(string value)
    {
        string date = DateTime.Parse(value).ToString("yyyy-MM-dd");
        _Year = date.Substring(0, 4);
        _Month = date.Substring(5, 2);
        _Day = date.Substring(8, 2);
        this.dwYear.Text = _Year;
        this.dwMonth.Text = _Month;
        this.dwDay.Text = _Day;
    }
    #endregion

    #region 返回年份
    /// <summary>
    /// 返回年份
    /// </summary>
    public string Year
    {
        get
        {
            return dwYear.Text;
        }
        set
        {
            dwYear.Text  = value;
        }
    }
    #endregion

    #region 设置控件显示样式
    /// <summary>
    /// 设置控件显示样式,如ym ,则只显示年月
    /// </summary>
    public string ShowStyle
    {
        set
        {
            _style = value;
        }

    }
    #endregion    
    
    #region 最小年份
    /// <summary>
    /// 最小年份,默认为1990年
    /// </summary>
    public int MinYear


    {
        set
        {
            _MinYear = value;
        }
    }
    #endregion

    #region 最大年份
    /// <summary>
    /// 最大年份,默义为2015年
    /// </summary>
    public int MaxYear
    {
        set
        {
            _MaxYear = value;
        }
    }
    #endregion

    
    #region 加载
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //设置显示年份
            int maxYear, minYear;
            //maxYear = _MaxYear == 0 ? MAXYEAR : _MaxYear;
            //minYear = _MinYear == 0 ? MINYEAR : _MinYear;
            maxYear = DateTime.Now.AddYears(_MaxYear == 0 ? MAXYEAR : _MaxYear).Year;
            minYear = DateTime.Now.AddYears(_MinYear == 0 ? MINYEAR : _MinYear).Year;
            if (!IsPostBack)
            {
                for (int i = minYear; i <= maxYear; i++)
                {
                    dwYear.Items.Add(new ListItem(i.ToString(), i.ToString()));
                }
            }
            //显示月
            for (int i = 1; i <= 12; i++)
            {
                string month = i.ToString().Length == 1 ? "0" + i.ToString() : i.ToString();
                dwMonth.Items.Add(new ListItem(month, month));
            }
            //显示月
            for (int i = 1; i <= 31; i++)


            {
                string day = i.ToString().Length == 1 ? "0" + i.ToString() : i.ToString();
                dwDay.Items.Add(new ListItem(day, day));
            }
            //显示格式

            if (_style.IndexOf('y') != -1) 
                dwYear.Visible = true;
            else
                dwYear.Visible = false;
            if (_style.IndexOf('m') != -1)
                dwMonth.Visible = true;
            else
                dwMonth.Visible = false;
            if (_style.IndexOf('d') != -1)
                dwDay.Visible = true;
            else
                dwDay.Visible = false;

            if (_text == null)
            {
                _text = DateTime.Now.Date.ToString();
            }
            
            setText(_text);
        }
    }
    #endregion
    
}


[解决办法]
Refer:
http://www.cnblogs.com/insus/archive/2012/10/16/2725307.html
3个dropdownlist控件 怎么从数据库中读取datetime列并且正确分别绑定年月日
http://www.cnblogs.com/insus/archive/2012/10/16/2725307.html

热点排行