一 复合控件(取值,赋值用法相近)
RadioButtonList --单选按钮 (一组列表)
<asp:RadioButtonList ID="RadioButtonList2" runat="server">
</asp:RadioButtonList>
-- 每一个单选按钮就是一个 listitem
控件属性
RepeatColumns : 3; -- 有3列(每行有几个按钮)
RepeatDirection vertical -- 垂直排列
Horizontal --水平排列
RepeatLayout Table -- 用表格的方式展现
Flow --用 span 的方式展现
应用
<asp:RadioButtonList ID="RadioButtonList1" runat="server"> <asp:ListItem Value ="True" Selected ="True" >男</asp:ListItem> <asp:ListItem Value ="False" >女</asp:ListItem> </asp:RadioButtonList>
赋值
1、

protected void Page_Load(object sender, EventArgs e) { //绑定数据 RadioButtonList1.DataSource = new usernationData().SelectAll(); RadioButtonList1.DataTextField = "NationName"; RadioButtonList1.DataValueField = "NationCode"; RadioButtonList1.DataBind(); //设置默认项 foreach ( ListItem li in RadioButtonList1.Items ) { if (li.Value == "n003") { li.Selected = true; } } }
RadioButtonList1.DataSource = new usernationData().SelectAll() -- 指向数据源
RadioButtonList1.DataTextField = "NationName"; -- 显示的内容
RadioButtonList1.DataValueField = "NationCode"; -- 隐藏的内容
RadioButtonList1.DataBind(); -- 绑定
2、

protected void Page_Load(object sender, EventArgs e) { List<usernation> ulist = new usernationData().SelectAll(); if (IsPostBack == false) { foreach (usernation u in ulist) { ListItem li = new ListItem(); li.Text = u.NationName; li.Value = u.NationCode; if (li.Value == "N003") { li.Selected = true; } RadioButtonList1.Items.Add(li); } } }
-- 直接用遍历绑定
if( ! ispostback )
{
| 只需要在页面第一次加载的时候才执行的代码写到这里面
| 注意95%的代码都要写到这里面
| -- !!!!事件委托不能写到这里面
}
取值
RadioButtonList1.SelectedValue; -- 获取隐藏的值
RadioButtonList1.SelectedItem.Text; -- 获取看到的值
CheckBoxList -- 复选列表
<asp:CheckBoxList ID="CheckBoxList1" runat="server">
</asp:CheckBoxList>
CheckBoxlist.Items 所有选项
控件属性
AutopostBack = " true "; 自动提交
SelectedIndexChanged 选项一改变就触发
取值

string s = ""; foreach (ListItem li in CheckBoxList1.Items) { if (li.Selected) { s += li.Text; } } Label.Text = s;
CheckBoxList1.SelectedItem.Text; -- 选单个值
DropDownList -- 下拉列表
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
赋值

List<usernation> ulist = new usernationData().SelectAll(); if (IsPostBack == false) { foreach (usernation u in ulist) { ListItem li = new ListItem(); li.Text = u.NationName; li.Value = u.NationCode; DropDownList1.Items.Add(li); } }
取值
DropDownList1.SelectedItem.Text;
清空下拉项
DropDownList1.Items.Clear( );
dropDownList控件绑定数据后,在显示时默认情况下是第一个选项处于选中状态。这时,展开控件的所有选项,
如果第一次选择的就是默认项,那么,dropdownlist_selectedChange事件将不会触发,
只有在选择一次非默认选项后,再返回来选择才会有效。
解决方法:
1、dropdownlist绑定的数据源不变,页面加载时默认选项的信息也随着页面加载同时显示。
foreach ( ListItem li in DropDownList1.Items ) { if (li.Value == "n003") { li.Selected = true; }
}
1、给dropdownlist添加一个默认选项(“——请选择——”),
---------------------------------------------------------------------------------
page_load事件在每一次页面刷新的时候都会执行,会把数据重新绑定一次,再去执行按钮事件
判断页面是否是第一次加载还是响应回发
if( ispostback == false )
{
-- 第一次加载
}
-- 响应回发(点击事件等)