复合控件:选择类

Posted yunpeng521

tags:

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

复合控件:

  多选框:checkbox - CheckBoxList  

    属性:RepeatLayout:Table  按表格排布   Flow流排布

       RepeatDirection:Vertical 垂直排布   Horizontal 水平排布

       RepeatColumns:每一行有几列  流式布局的时候使用

      单选

        Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:CheckBoxList ID="CheckBoxList1" runat="server"><%--里面的每一项都是一个ListItem --%>
            <asp:ListItem Value="N001">汉族</asp:ListItem>
            <asp:ListItem Value="N002">满族</asp:ListItem>
            <asp:ListItem Value="N003">藏族</asp:ListItem>
            <asp:ListItem Value="N004">彝族</asp:ListItem>
        </asp:CheckBoxList>
        
        <asp:Button ID="Button1" runat="server" Text="Button" />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Click += Button1_Click;
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        if(CheckBoxList1.SelectedItem!=null)//2、选中的SelectedItem不等于空的时候才执行
        {
            Label1.Text = CheckBoxList1.SelectedItem.Value;//1、获取复选框选中的Vlue也可以选中的Text。如果什么也没选中获取的话会报错所以执行2
        }
        
    }
}

多选  默认选中项

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Click += Button1_Click;
        if (! IsPostBack)//8、只有页面第一次加载才回走里面的代码。事件的委托要放在外面
        {
        List<Users> ulist = new UsersData().SelectAll();//1、将数据的内容返回个ulist
        foreach (Users u in ulist)//2、循环遍历ulist
        {
            ListItem li = new ListItem(u.NickName, u.UserName);//括号里的第一个值为Text,第二个值为Valus
                if (u.UserName == "2589")//9、默认选中项
                {
                    li.Selected = true;
                }
                CheckBoxList1.Items.Add(li);
        }
        }
    }

    private void Button1_Click(object sender, EventArgs e)
    {
              //7、获取的话会在重新加载下数据库的内容所以执行8
        if (CheckBoxList1.SelectedItem != null)//3、选中的SelectedItem不等于空的时候才执行如果等于空的时候回报错
        {
            string s = "";

            foreach (ListItem li in CheckBoxList1.Items)  //4、循环遍历一下CheckBoxList1里的集合所以用Items类型ListItem
            {
                if (li.Selected)//5、获取选中的值
                {
                    s += li.Text + ",";//6将选中的项的Tect给上面的s
                }
            }
        
        }
    }
}

多选无默认值

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Click += Button1_Click;
        if (!IsPostBack)//8、只有页面第一次加载才回走里面的代码。事件的委托要放在外面
        {
            List<Users> ulist = new UsersData().SelectAll();//1、将数据的内容返回个ulist
            CheckBoxList1.DataSource = ulist;//2、ulist置顶到CheckBoxList1
            CheckBoxList1.DataTextField = "NickName";//显示数据库里NickName列显示相当于Text
            CheckBoxList1.DataValueField = "Ucode";//隐藏数据库里的Ucode列隐藏相当于Value
            CheckBoxList1.DataBind();//CheckBoxList1绑定数据路
        }
    }

    private void Button1_Click(object sender, EventArgs e)
    {        //7、获取的话会在重新加载下数据库的内容所以执行8
        if (CheckBoxList1.SelectedItem != null)//3、选中的SelectedItem不等于空的时候才执行如果等于空的时候回报错
        {
            string s = "";

            foreach (ListItem li in CheckBoxList1.Items)  //4、循环遍历一下CheckBoxList1里的集合所以用Items类型ListItem
            {
                if (li.Selected)//5、获取选中的值
                {
                    s += li.Text + ",";//6将选中的项的Tect给上面的s
                }
            }
        
        }
    }
}

单选框

radio - RadioButtonList

取值和复制和上面一样

 

设置默认选中项:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            RadioButtonList1.DataSource = new UsersData().SelectAll();
            RadioButtonList1.DataTextField = "NickName";
            RadioButtonList1.DataValueField = "Ucode";
            RadioButtonList1.DataBind();
            RadioButtonList1.SelectedIndex = 0;//默认选中索引为0的项
        }
    }
}

下拉菜单

select - DropDownList

单选

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        
        if (!IsPostBack)
        {
            DropDownList1.Items.Add(new ListItem("===请选择===","-1"));//在网页中不显示,下面自带清空,显示的话属性AppendDataBoundItems="True"显示
            DropDownList1.DataSource = new UsersData().SelectAll();
            DropDownList1.DataTextField = "NickName";
            DropDownList1.DataValueField = "Ucode";
            DropDownList1.DataBind();
        }
    }
}

多选

**AutoPostBack  相当于点击事件

以上是关于复合控件:选择类的主要内容,如果未能解决你的问题,请参考以下文章

复合控件:选择类

表单元素,简单控件,复合控件

webform复合控件

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

webform简单控件与复合控件

2017年12月17日 ASP.NET 12个表单元素&&简单控件/复合控件