首页 > 技术文章 > C#-WebForm-复合控件

qq450867541 2016-12-29 23:20 原文

学习顺序:1、如何绑定数据  2、如何设置绑定项  3、如何取出数据

 

1、RadioButton - 单选按钮  RadioButtonList - 单选按钮组

控件中的ID生成了相同名字的 ID、Name、Value

编译前

<asp:RadioButton ID="RadioButton1" runat="server" Text="男" />
<asp:RadioButton ID="RadioButton2" runat="server" Text="女" />

页面展示  单选按钮之间不互斥,自动生成name,默认name不同(李献策lxc)

编译后

<input id="RadioButton1" type="radio" name="RadioButton1" value="RadioButton1" /><label for="RadioButton1">男</label>
<input id="RadioButton2" type="radio" name="RadioButton2" value="RadioButton2" /><label for="RadioButton2">女</label>

 属性:

  GroupName - 分组

<asp:RadioButton ID="RadioButton1" runat="server" Text="" GroupName="sex" />
<asp:RadioButton ID="RadioButton2" runat="server" Text="" GroupName="sex" />

 

RadioButtonList - 单选按钮组(李献策lxc)

一、绑定数据

新建一个类

1、自带构造函数  2、没有命名空间

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List<States> slist = new List<States>();

        States s1 = new States() { Code = "001", Name = "张店" };
        States s2 = new States() { Code = "002", Name = "淄川" };
        States s3 = new States() { Code = "003", Name = "博山" };
        States s4 = new States() { Code = "004", Name = "桓台" };
        States s5 = new States() { Code = "005", Name = "临淄" };
        States s6 = new States() { Code = "006", Name = "周村" };

        slist.Add(s1);
        slist.Add(s2);
        slist.Add(s3);
        slist.Add(s4);
        slist.Add(s5);
        slist.Add(s6);

        RadioButtonList1.DataSource = slist;
        RadioButtonList1.DataTextField = "Name";
        RadioButtonList1.DataValueField = "Code";
        RadioButtonList1.DataBind();

    }
    
}
为复选按钮组绑定信息

网页展示

后台代码

<div>

            <table id="RadioButtonList1">
    <tr>
        <td><input id="RadioButtonList1_0" type="radio" name="RadioButtonList1" value="001" /><label for="RadioButtonList1_0">张店</label></td>
    </tr><tr>
        <td><input id="RadioButtonList1_1" type="radio" name="RadioButtonList1" value="002" /><label for="RadioButtonList1_1">淄川</label></td>
    </tr><tr>
        <td><input id="RadioButtonList1_2" type="radio" name="RadioButtonList1" value="003" /><label for="RadioButtonList1_2">博山</label></td>
    </tr><tr>
        <td><input id="RadioButtonList1_3" type="radio" name="RadioButtonList1" value="004" /><label for="RadioButtonList1_3">桓台</label></td>
    </tr><tr>
        <td><input id="RadioButtonList1_4" type="radio" name="RadioButtonList1" value="005" /><label for="RadioButtonList1_4">临淄</label></td>
    </tr><tr>
        <td><input id="RadioButtonList1_5" type="radio" name="RadioButtonList1" value="006" /><label for="RadioButtonList1_5">周村</label></td>
    </tr>
</table>


        </div>
后台代码

1、自动按照索引排序  2、相同的name  3、自动生成value  

4、Table 布局(弊端:1、Table布的局,如果要将某个部分换到其他位置,则整个Table要重新做  2、搜索引擎是无法趴到Table内的内容)

二、设置选定项

1、通过索引选中

RadioButtonList1.SelectedIndex = 0;

如果是最后一个(李献策lxc)

RadioButtonList1.SelectedIndex = slist.Count - 1;

2、通过Value值选中

RadioButtonList1.SelectedValue = "001";

3、如何通过Text来设置选中项?

foreach(ListItem li in RadioButtonList1.Items)
        {
            if (li.Text == "临淄")
            {
                li.Selected = true;
            }
        }
通过遍历设置选中项

三、取出数据

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            List<States> slist = new List<States>();

            States s1 = new States() { Code = "001", Name = "张店" };
            States s2 = new States() { Code = "002", Name = "淄川" };
            States s3 = new States() { Code = "003", Name = "博山" };
            States s4 = new States() { Code = "004", Name = "桓台" };
            States s5 = new States() { Code = "005", Name = "临淄" };
            States s6 = new States() { Code = "006", Name = "周村" };

            slist.Add(s1);
            slist.Add(s2);
            slist.Add(s3);
            slist.Add(s4);
            slist.Add(s5);
            slist.Add(s6);

            RadioButtonList1.DataSource = slist;
            RadioButtonList1.DataTextField = "Name";
            RadioButtonList1.DataValueField = "Code";
            RadioButtonList1.DataBind();

            foreach (ListItem li in RadioButtonList1.Items)
            {
                if (li.Text == "临淄")
                {
                    li.Selected = true;
                }
            }
        }

        Button1.Click += Button1_Click;

    }

    void Button1_Click(object sender, EventArgs e)
    {
        TextBox1.Text = RadioButtonList1.SelectedValue;
    }
    
}
设置按钮事件取出value值

void Button1_Click(object sender, EventArgs e)
    {
        TextBox1.Text = RadioButtonList1.SelectedItem.Text;
    }
设置按钮事件取出Text值则为

 ======================================================

2、CheckBoxList - 复选按钮组

一、绑定数据

绑定
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            List<States> slist = new List<States>();

            States s1 = new States() { Code = "001", Name = "张店" };
            States s2 = new States() { Code = "002", Name = "淄川" };
            States s3 = new States() { Code = "003", Name = "博山" };
            States s4 = new States() { Code = "004", Name = "桓台" };
            States s5 = new States() { Code = "005", Name = "临淄" };
            States s6 = new States() { Code = "006", Name = "周村" };

            slist.Add(s1);
            slist.Add(s2);
            slist.Add(s3);
            slist.Add(s4);
            slist.Add(s5);
            slist.Add(s6);

            CheckBoxList1.DataSource = slist;
            CheckBoxList1.DataTextField = "Name";
            CheckBoxList1.DataValueField = "Code";
            CheckBoxList1.DataBind();

            foreach (ListItem li in CheckBoxList1.Items)
            {
                if (li.Text == "临淄")
                {
                    li.Selected = true;
                }
            }
        }

        Button1.Click += Button1_Click;

    }

    void Button1_Click(object sender, EventArgs e)
    {
        TextBox1.Text = CheckBoxList1.SelectedItem.Text;
    }
    
}
数据

二、设置选定项

同RadioButtonList

三、取出数据

void Button1_Click(object sender, EventArgs e)
    {
        string s="";
        foreach(ListItem li in CheckBoxList1.Items)
        {
            if (li.Selected)
            {
                s += li.Text;
            }
        }
        TextBox1.Text = s;
    }
取出数据

===========================================================

RadioButtonList 与 CheckButtonList 的属性

  RepeatDirection:项的布局方向

    Horizontal:横向排列  Vertical:纵向排列

  RepeatLayout:项是否在某个表或流入中重复

    Talbe:数据在表格中  Flow:数据在流式布局中  (李献策lxc)

    OrderedList:数据按照有序列表排列(只能纵向排列)  UnorderedList:数据在无序列表中排列(只能纵向排列)

  RepeatColumns:用于布局项的列数

===========================================================

 3、下拉列表DropDownList - 对应单选按钮组

WinForm - ComboBox  WebForm - DropDownList

一、绑定数据

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            List<States> slist = new List<States>();

            States s1 = new States() { Code = "001", Name = "张店" };
            States s2 = new States() { Code = "002", Name = "淄川" };
            States s3 = new States() { Code = "003", Name = "博山" };
            States s4 = new States() { Code = "004", Name = "桓台" };
            States s5 = new States() { Code = "005", Name = "临淄" };
            States s6 = new States() { Code = "006", Name = "周村" };

            slist.Add(s1);
            slist.Add(s2);
            slist.Add(s3);
            slist.Add(s4);
            slist.Add(s5);
            slist.Add(s6);

            DropDownList1.DataSource = slist;
            DropDownList1.DataTextField = "Name";
            DropDownList1.DataValueField = "Code";
            DropDownList1.DataBind();

            }
        }
绑定数据

二、设置选定项

同上

三、取出选定项

同时

属性

=========================================================

4、ListBox - 对应复选按钮组,默认单选

属性:

  SelectionMode:选择模式

    Single:单选  Multiple:多选

推荐阅读