《》课程教案2016----2017学年第二学期任课教师张成年任课班级软件153课程名称课程类型专业必修课总学时80二O一七年二月PostBackUrl-->指定单击此按钮时回发到的页面的URL,默认为本页在目标页面中用 Page.PreviousPage.FindControl() 方法获取数据Click 事件3. 例子标签、文本框、按钮的综合例子--模拟登录程序知识点:TextBox的TextMode属性If语句弹出提示对话框(可以带上耳机)protected void Button1_Click(object sender, EventArgs e){string uid = "a", pwd = "123";if ((TextBox1.Text == uid) && (TextBox2.Text == pwd))Response.Write("<script >alert('用户名和密码正确!')</script>");elseResponse.Write("<script language='javascript'>alert('用户名和密码不正确!')</script>");}(五)HyperLink控件1. 作用超级链接2. 重要属性TextNavigateUrlImageUrlToolTipTargetSkinID3. 例子将NavigateUrl设置为default.aspx,然后再(1)设置Target为空(即默认值),查看效果;(2)设置Target为_blank,查看效果。
HyperLink比<a></a>标记是更方便。
(六)ImageButton控件1. 作用显示图片的按钮Page_LoadDropDownList1_SelectedIndexChanged DropDownList2_SelectedIndexChanged AutoPostBack属性Button1_Click练习:DropDownList年、月、日联动(八)ListBox控件1. 作用显示列表2. 重要属性ItemsSelectionMode->Single、Multiple添加新项目删除选中项目查找是否有该项目清空所有的项目3. 例子ListItem类型ListItem的两个重要属性:Text和Value创建一个ListItem对象:ListItem Li1=new ListItem();Li1.Text=“hello”;Li1.Value=“1”;添加项目—判空、IsPostBack问题:每次点按钮都添加了多项,如何解决?解决方案:判断是否是第一次,是则添加项;否则什么也不做。
ListBox1.Items.Add(new ListItem(TextBox1.Text));添加时判断是否为空Trim()方法逻辑:不为空添加新项目;为空,弹出不允许为空的对话框。
删除的业务逻辑单项删除如果有选中的项目则删除,否则提示“没有项目被选中!”多项删除从第一项到最后一项循环,如果第i项被选中则删除。
问题:怎么知道一共有多少项?某项被选中怎么区分?查找的业务逻辑如果找到则选中项目,否则提示“没有找到”删除代码:ListBox1.Items.RemoveAt(i);//根据索引删除项添加删除确认对话框:在Page_Load事件中,写入CheckBox实现多项选择添加3个CheckBox和一个Button,内容如图所示。
点击“确定”按钮,提示选择的项目。
protected void Button1_Click(object sender, EventArgs e) {string s="";if (CheckBox1.Checked)s = s + "您喜欢"+CheckBox1.Text;if (CheckBox2.Checked)s = s + "您喜欢" + CheckBox2.Text;if (CheckBox3.Checked)s = s + "您喜欢" + CheckBox3.Text;Response.Write(s);}(十)CheckBoxList控件1. 作用处理属性和事件TextAutoPostBackGroupName✓protected void Page_Load(object sender, EventArgs e){ }✓protected void Button1_Click(object sender, EventArgs e) { }✓protected void RadioButton1_CheckedChanged(object sender, EventArgse){ }protected void Page_Load(object sender, EventArgs e){TextBox1.Attributes.Add("onMouseOver","this.focus();this.select();");//TextBox1.Attributes.Add("onMouseOver","this.focus();this.select();this.value=''");//TextBox1.Attributes.Add("onclick", "this.value=''");}protected void RadioButton1_CheckedChanged(object sender, EventArgs e) {Response.Write("你的年龄在15-30之间");}(十三)Panel控件1. 作用容器:相当于组2. 重要属性GroupingText3. 例子书上109页例子不讲,直接讲“登录模拟_Panel控件”的例子。
(十四)Table控件1. 作用容器,用于布局2. 重要属性HorizontalAlignBackColorBorderColorBorderStyleBorderWidthForeColorGridLinesFont-BoldHeightWidth3.组成(结合下图说明)4. 例子书上113页例子的升级,讲“动态创建表格并填充内容参考代码”的例子。
简单总结:Table和Panel实际可以互相嵌套,只是一般最外层是Table.(十五)BulletedList控件1. 作用为列表项增加项目符号2. 重要属性和方法Items属性Items[i].Text属性Insert和Add方法3. 例子书上116页例子加工,讲“动态添加项目和点击文字的即时变化”的例子。
(十六)ImageMap控件1. 作用相当于把一幅图片虚拟分割成多个区域。
2. 重要属性和事件ImageUrl属性HotSpotMode属性Click事件3. 热点区域的划分4. 例子书上117页例子强力改造,形成了“网易、搜狐、雅虎、新浪网站导航”的例子。
三、小结1.本章需要掌握控件的主要属性、方法和事件,利用它们组合形成特定的功能。
2. 书上的文字内容不容易理解,通过例子学习更方便,然后再回头。
(循环反复)四、作业将书上的例子做一遍五、教学后记1.服务器控件的作用:实现用户的交互,提供操作的接口。
2.教材处理:书上的例子能够满足一定的需求,但是还不够。
(But that’s not enough)需要老师自己重新创造例子。
(Do it yourself)书上的例子有的课上不做了;有的课上让学生自己做,然后演示;有的很好的、有一定难度的老师组织一起践行。
3.功能驱动法:首先展示系统的功能(即老师演示程序),让学生有一个直观感受,“知道自己去哪里”。
4.面向过程与面向对象结合实际本章体现了堆积木原则,也是利用三种常见的程序结构(面向过程),而控件的属性、方法则完全是面向对象的思想。
5.学生也很有创造力<br /><asp:Button ID="Button1" runat="server" Text="Button" /><br /></div></form></body>在进行验证时,RequiredFieldValidator控件必须绑定一个服务器控件,在上述代码中,验证控件RequiredFieldValidator控件的服务器控件绑定为TextBox1,当TextBox1中的值为空时,则会提示自定义错误信息“必填字段不能为空”,如图3-53所示。
图3-53 RequiredFieldValidator验证控件当姓名选项未填写时,会提示必填字段不能为空,并且该验证在客户端执行。
当发生此错误时,用户会立即看到该错误提示而不会立即进行页面提交,当用户填写完成并再次单击按钮控件时,页面才会向服务器提交。
3. 2 比较验证控件(CompareValidator)比较验证控件对照特定的数据类型来验证用户的输入。
因为当用户输入用户信息时,难免会输入错误信息,如当需要了解用户的生日时,用户很可能输入了其他的字符串。
CompareValidator比较验证控件能够比较控件中的值是否符合开发人员的需要。
CompareValidator控件的特有属性如下所示:❑ControlToCompare:以字符串形式输入的表达式。
要与另一控件的值进行比较。
❑Operator:要使用的比较。
❑Type:要比较两个值的数据类型。
❑ValueToCompare:以字符串形式输入的表达式。
当使用CompareValidator控件时,可以方便的判断用户是否正确输入,示例代码如下所示。
<body><form id="form1" runat="server"><div>请输入生日:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />毕业日期:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><asp:CompareValidator ID="CompareValidator1" runat="server"ControlToCompare="TextBox2" ControlToValidate="TextBox1"CultureInvariantValues="True" ErrorMessage="输入格式错误!请改正!"Operator="GreaterThan"Type="Date"></asp:CompareValidator><br /><asp:Button ID="Button1" runat="server" Text="Button" /><br /></div></form></body>上述代码判断TextBox1的输入的格式是否正确,当输入的格式错误时,会提示错误,如图3-54所示。