C#-WebForm-复合控件

时间:2023-03-10 03:14:23
C#-WebForm-复合控件

学习顺序: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)

C#-WebForm-复合控件

编译后

<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)

一、绑定数据

新建一个类

C#-WebForm-复合控件

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 = "", Name = "张店" };
States s2 = new States() { Code = "", Name = "淄川" };
States s3 = new States() { Code = "", Name = "博山" };
States s4 = new States() { Code = "", Name = "桓台" };
States s5 = new States() { Code = "", Name = "临淄" };
States s6 = new States() { Code = "", 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(); } }

为复选按钮组绑定信息

网页展示C#-WebForm-复合控件

后台代码

<div>

            <table id="RadioButtonList1">
<tr>
<td><input id="RadioButtonList1_0" type="radio" name="RadioButtonList1" value="" /><label for="RadioButtonList1_0">张店</label></td>
</tr><tr>
<td><input id="RadioButtonList1_1" type="radio" name="RadioButtonList1" value="" /><label for="RadioButtonList1_1">淄川</label></td>
</tr><tr>
<td><input id="RadioButtonList1_2" type="radio" name="RadioButtonList1" value="" /><label for="RadioButtonList1_2">博山</label></td>
</tr><tr>
<td><input id="RadioButtonList1_3" type="radio" name="RadioButtonList1" value="" /><label for="RadioButtonList1_3">桓台</label></td>
</tr><tr>
<td><input id="RadioButtonList1_4" type="radio" name="RadioButtonList1" value="" /><label for="RadioButtonList1_4">临淄</label></td>
</tr><tr>
<td><input id="RadioButtonList1_5" type="radio" name="RadioButtonList1" value="" /><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 = "", Name = "张店" };
States s2 = new States() { Code = "", Name = "淄川" };
States s3 = new States() { Code = "", Name = "博山" };
States s4 = new States() { Code = "", Name = "桓台" };
States s5 = new States() { Code = "", Name = "临淄" };
States s6 = new States() { Code = "", 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值

C#-WebForm-复合控件

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

设置按钮事件取出Text值则为

C#-WebForm-复合控件

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

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 = "", Name = "张店" };
States s2 = new States() { Code = "", Name = "淄川" };
States s3 = new States() { Code = "", Name = "博山" };
States s4 = new States() { Code = "", Name = "桓台" };
States s5 = new States() { Code = "", Name = "临淄" };
States s6 = new States() { Code = "", 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;
} }

数据

C#-WebForm-复合控件

二、设置选定项

同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;
}

取出数据

C#-WebForm-复合控件

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

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 = "", Name = "张店" };
States s2 = new States() { Code = "", Name = "淄川" };
States s3 = new States() { Code = "", Name = "博山" };
States s4 = new States() { Code = "", Name = "桓台" };
States s5 = new States() { Code = "", Name = "临淄" };
States s6 = new States() { Code = "", 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(); }
}

绑定数据

C#-WebForm-复合控件

二、设置选定项

同上

三、取出选定项

同时

属性

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

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

C#-WebForm-复合控件

属性:

  SelectionMode:选择模式

    Single:单选  Multiple:多选