今天老师继续讲了web服务器控
选择类控件
1.Pannel
Panel控件用来盛放一些控件。
例; <asp:Panel ID="Panel1" runat="server"> ========>被渲染为:
<div id="Panel1">
如果设定GroupingText属性那么就渲染为含有<fieldset>的div标签,也就是GroupBox效果.
例子:GroupingText=Box1
被渲染为:
<fieldset>
<legend>
Box1
</legend>
<fieldset>
2.ListBox
ListBox控件提供的是单选或者多重选择列表。通过修改SelectionMode属性来实现CheckBoxList或者RadioButtonList控件的功能。
当用户选择一项或者多项时,将会激发SelectedIndexChanged事件,默认情况下该事件不会导致页面回发,但是可以通过设置AutoPostBack为true来强制立即回发。
语法:
<asp:ListBox ID="控件名" runat="server" SelectionMode="选择模式">
<asp:ListItem>列表项 1</asp:ListItem>
<asp:ListItem>列表项2</asp:ListItem>
…
</asp:ListBox>
可以直接拖放控件到设计界面,通过点击设计项菜单进入子项的设置,也可通过和数据源绑定实现子项填充。
动态生成;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack )
{
ListItem li = new ListItem("公牛","3");
ListBox1.Items.Add(li);
}
}
注意:事件:SelectedIndexChanged事件 属性:SelectionMode(单行还是多行) AutoPostBack(是否直接向服务器提交)
事件;
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write(ListBox1.SelectedValue);
Response.Write(ListBox1.SelectedItem.Text + ":(" + ListBox1.SelectedIndex + ")");
}
3.DropDownList
作用:
将选项显示为下拉列表,并从中进行单项选择。操作与ListBox类似。
语法:
<asp:DropDownList ID=“控件名” runat=“server”>
<asp:ListItem>列表项1</asp:ListItem>
<asp:ListItem>列表项2</asp:ListItem>
…
</asp:DropDownList>
SelectedIndexChanged事件
4.CheckBox
事件:checkedchanged
5.checkBoxList
6.RadioButtonList
属性:repeatDirection
下面是我们上课做过的练习题.和大家分享一下..
1.dropdownlist下拉列表的练习
效果就是如图所示:
public partial class listbox : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// ListItem li = new ListItem("公牛","3");
// ListBox1.Items.Add(li);
ListItem li = new ListItem("北京","3");
DropDownList1.Items.Add(li);
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if(DropDownList1.SelectedItem .Text =="河北")
{
ListBox1.Items.Clear();
ListItem li = new ListItem("邯郸","1");
ListBox1.Items.Add(li);
li = new ListItem("保定","2");
ListBox1.Items.Add(li);
}
else if (DropDownList1.SelectedItem.Text == "河南")
{
ListBox1.Items.Clear();
ListItem li = new ListItem("周口", "1");
ListBox1.Items.Add(li);
li = new ListItem("郑州", "2");
ListBox1.Items.Add(li);
}
else if (DropDownList1.SelectedItem.Text == "北京")
{
ListBox1.Items.Clear();
ListItem li = new ListItem("东城区", "1");
ListBox1.Items.Add(li);
li = new ListItem("西城区", "2");
ListBox1.Items.Add(li);
}
}
2.
效果就是这样;
简单的说明:点击>>>从左边框里的内容到右边的框里,可以保证多选也可以实现,同样delete也是,必须实现不管删除多个还是 一个都可以实现
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack )
{
ListItem li = new ListItem("刘晓飞","1");
ListBox1.Items.Add(li );
li = new ListItem("张兰","2");
ListBox1.Items.Add (li );
li = new ListItem("巧巧", "3");
ListBox1.Items.Add(li);
li = new ListItem("一韩", "4");
ListBox1.Items.Add(li);
}
}
protected void Button1_Click(object sender, EventArgs e)
{//单项
// #region
// string value= ListBox1.SelectedItem.Value;
//string text= ListBox1.SelectedItem.Text;
//ListItem li = new ListItem(text, value);
//ListBox2.Items.Add(li);
// #endregion
//多项
foreach(ListItem de in ListBox1 .Items )
{
if(de.Selected )
{
ListBox2.Items.Add(de);
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
//删除 可以删除多项或者单个的
for (int i = ListBox2.Items.Count - 1; i >= 0;i-- )
{
if(ListBox2.Items[i].Selected)
{
this.ListBox2.Items.RemoveAt(ListBox2.Items.IndexOf(ListBox2.Items[i]));
}
}=================================删除这里确实是个难点,上课费了很大的功夫
}
3.效果图:
3
protected void Button2_Click1(object sender, EventArgs e)
{
string str = "";
foreach (ListItem li in CheckBoxList5.Items)
{
if (li.Selected)
{
str = li.Text;--------------------------上课这里是个问题啊、老师叫起来回答问题没说对啊
}
}
Response.Write("你的爱好是:" + str + "我们会根据这些爱好给你提供方便");
}