webform复合控件以及用来做年月日选择日期的DropDownList控件

Posted 朱利军

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webform复合控件以及用来做年月日选择日期的DropDownList控件相关的知识,希望对你有一定的参考价值。

自动提交(不用刷新)的属性: AutoPostBack="True"

1、RadioButtonList     单选集合

-属性:RepeatDirection:Vertical (垂直排布)/Horizontal (横向排布)

          RepeatLayout:Table (表格排布方式)/Flow (span排布方式)

          RepeatColumns:         设置为多少列。

每一个单选按钮都是一个ListItem对象,他有  Enable(是否可用)、  selected(默认选中)  Text(显示的文本) Value(隐藏的值)属性

 

赋值:两种数据绑定方法:

第一种:  RadioButtonList1.DataSource=数据源集合

               RadioButtonList1.DataValueField="";      //给程序看的

               RadioButtonList1.DataTextField="";        //显示出来的

               RadioButtonList1.DataBind();                //调用数据绑定方法

               foreach(ListItem li in RadioButtonList1.Items )

            {

              if(li.value=="值")

                   li.Selected=true;

             }

 

第二种:

    List<UserNation> ulist =new  UserNationData().SelectAll();

     foreach(UserNation u in ulist)

    {

         ListItem li =new ListItem();

         li.Text=u.NationName;

         li.Value=u.NationCode;

         if(li.Value=="值")

          { li.Selected=true; }

         RadioButtonList.Item.Add(li);

    }

 

取值: Label1.Text=RadioButtonList1.SelectedItem.Text+ RadioButtonList1.SelectedValue

 

2、CheckBoxList    复选集合

赋值和RadioButtonList 一样

取值:

 

注意!!!!!!!!!!!!!!!!!!

绑定数据出现数据选项无法更改 page_load事件再每一次页面刷新的时候都会执行 就会把数据重新绑定一次,再去执行按钮事件 判断页面是否是第一次加载还是响应回发

if(!ispostback) { 只需要在页面第一次加载的时候才执行的代码写到这里面 注意95%的代码都要写到这里面 !事件委托不能写到这里面 }

 

3、DropDownList    下拉列表选择

赋值:

 

取值:

DropDownList控件实现时间日期选择:

<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>年

<asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList>月

<asp:DropDownList ID="DropDownList3" runat="server"></asp:DropDownList>日

在C#后台代码加载时间日期

复制代码
 if (!IsPostBack)
        {  //添加年月日
            for (int i = DateTime.Now.Year; i >= 1900; i--)
            {
                ListItem li = new ListItem(i.ToString(), i.ToString());
                DropDownList1.Items.Add(li);
            }
            for (int i = 1; i < 13; i++)
            {
                DropDownList2.Items.Add(new ListItem(i.ToString(), i.ToString()));
            }
            for (int i = 1; i <= 31; i++)
            {
                DropDownList3.Items.Add(new ListItem(i.ToString(), i.ToString()));
            }
        }
复制代码

 

 

在Js中写时间日期的限制

 

复制代码
//年月日动态改变
    //年份改变事件,如果是闰年,2月日期动态赋值;如果不是闰年,2月日期动态赋值
    document.getElementById("DropDownList1").onchange = function () {
        var year = document.getElementById("DropDownList1");
        var mon = document.getElementById("DropDownList2");
        var day = document.getElementById("DropDownList3");
        if (mon.value == "2") {
            if (year.value % 100 == 0 && year.value % 400 == 0 || year.value % 4 == 0) {

                //先把天控件里的内容清除
                day.options.length == 0;
                for (var i = 1; i < 30; i++) {
                    //创建一个option对象
                    var op = document.createElement("option");
                    //对象的value和显示的innerhtml都是i
                    op.value = i;
                    op.innerHTML = i;
                    //将对象放入天控件
                    day.appendChild(op);


                }
            }
            else {
                day.options.length == 0;
                for (var i = 1; i < 29; i++) {
                    var op = document.createElement("option");
                    op.value = i;
                    op.innerHTML = i;
                    day.appendChild(op);

                }
            }
        }

    }
    //月份改变事件:2月赋值,大月赋值,小月赋值。
    document.getElementById("DropDownList2").onchange = function () {
        var year = document.getElementById("DropDownList1");
        var mon = document.getElementById("DropDownList2");
        var day = document.getElementById("DropDownList3");
        if (mon.value == "2") {
            if (year.value % 100 == 0 && year.value % 400 == 0 || year.value % 4 == 0) {
                day.options.length == 0;
                for (var i = 1; i < 30; i++) {
                    var op = document.createElement("option");
                    op.value = i;
                    op.innerHTML = i;
                    day.appendChild(op);


                }
            }
            else {
                day.options.length == 0;
                for (var i = 1; i < 29; i++) {
                    var op = document.createElement("option");
                    op.value = i;
                    op.innerHTML = i;
                    day.appendChild(op);

                }


            }
        }

        else if (mon.value == "1" || mon.value == "3" || mon.value == "5" || mon.value == "7" || mon.value == "8" || mon.value == "10" || mon.value == "12") {
            day.options.length == 0;
            for (var i = 1; i < 32; i++) {
                var op = document.createElement("option");
                op.value = i;
                op.innerHTML = i;
                day.appendChild(op);

            }
        }
        else if (mon.value == "4" || mon.value == "6" || mon.value == "9" || mon.value == "11") {
            day.options.length == 0;
            for (var i = 1; i < 31; i++) {
                var op = document.createElement("option");
                op.value = i;
                op.innerHTML = i;
                day.appendChild(op);

            }
        }


    }

以上是关于webform复合控件以及用来做年月日选择日期的DropDownList控件的主要内容,如果未能解决你的问题,请参考以下文章

webform复合控件

Webform(简单控件复合控件)

webform简单控件与复合控件

WPF 用TextBox和Calendar自定义可以选择年月的日期选择控件

WPF 用TextBox和Calendar自定义可以选择年月的日期选择控件

EasyUi日期控件datebox,只显示年月,也只能选择年月(亲测有效,无效视频剁吊)