WebForms 实例学习笔记

简介

WebForms 是一种基于 ASP.NET 技术的 Web 应用开发框架,它使用了一些特定的控件和技术,可以帮助开发者在 Web 应用中方便地创建表单、数据绑定、用户输入验证等功能。在本文中,我们将介绍 WebForms 开发中的一些实例。

创建表单

通过 WebForms,我们可以轻松地创建包含多个表单元素的表单,如文本框、复选框和下拉列表等。以下是一个简单的表单示例:

htmlCopy Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html> <head> <title>WebForms 表单示例</title> </head> <body> <form runat="server"> <label for="txtName">姓名:</label> <input type="text" id="txtName" name="txtName" runat="server" /><br /> <label for="chkGender">性别:</label> <input type="checkbox" id="chkMale" name="chkGender" value="male" runat="server" /> <label for="chkMale"></label> <input type="checkbox" id="chkFemale" name="chkGender" value="female" runat="server" /> <label for="chkFemale"></label><br /> <label for="ddlCity">城市:</label> <select id="ddlCity" name="ddlCity" runat="server"> <option value="">请选择城市</option> <option value="beijing">北京</option> <option value="shanghai">上海</option> <option value="guangzhou">广州</option> <option value="shenzhen">深圳</option> </select><br /> <input type="submit" id="btnSubmit" value="提交" runat="server" /> </form> </body> </html>

在上面的示例中,我们使用了 <form> 标签来创建一个表单,然后使用了一些带有 runat="server" 属性的 HTML 元素,这些元素可以被服务器端代码访问和处理。

数据绑定

WebForms 提供了多种数据绑定技术,可以将数据源中的数据绑定到各种控件中,如下拉列表、列表框、数据网格等。以下是一个简单的数据绑定示例:

htmlCopy Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html> <head> <title>WebForms 数据绑定示例</title> </head> <body> <form runat="server"> <label for="ddlCity">选择城市:</label> <select id="ddlCity" name="ddlCity" runat="server" OnSelectedIndexChanged="ddlCity_SelectedIndexChanged" AutoPostBack="True"> <asp:ListItem Text="--请选择--" Value="" /> <asp:ListItem Text="北京" Value="bj" /> <asp:ListItem Text="上海" Value="sh" /> <asp:ListItem Text="广州" Value="gz" /> <asp:ListItem Text="深圳" Value="sz" /> </select><br /> <asp:Label ID="lblCityInfo" runat="server"></asp:Label> </form> <script runat="server"> protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e) { string cityValue = ddlCity.SelectedValue; if (cityValue == "bj") { lblCityInfo.Text = "北京是中国的首都。"; } else if (cityValue == "sh") { lblCityInfo.Text = "上海是中国的经济中心。"; } else if (cityValue == "gz") { lblCityInfo.Text = "广州有着丰富的美食文化。"; } else if (cityValue == "sz") { lblCityInfo.Text = "深圳是中国的科技创新中心。"; } else { lblCityInfo.Text = ""; } } </script> </body> </html>

在上面的示例中,我们使用了 <asp:ListBox> 控件,其中的 <asp:ListItem> 元素表示了列表中的每个选项。当用户选择一个选项时,服务器端代码会触发一个 SelectedIndexChanged 事件,我们可以在事件处理程序中根据选择的值来显示城市信息。

用户输入验证

WebForms 还提供了许多用户输入验证控件,如必填字段验证、正则表达式验证、比较验证等。以下是一个简单的验证示例:

htmlCopy Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html> <head> <title>WebForms 验证示例</title> </head> <body> <form runat="server"> <asp:Label ID="lblUserName" Text="用户名:" runat="server"></asp:Label> <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox><br /> <asp:RequiredFieldValidator ID="rfvUserName" ControlToValidate="txtUserName" ErrorMessage="用户名不能为空" runat="server"></asp:RequiredFieldValidator><br /> <asp:Label ID="lblPassword" Text="密码:" runat="server"></asp:Label> <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox><br /> <asp:RegularExpressionValidator ID="revPassword" ControlToValidate="txtPassword" ValidationExpression="^[a-z0-9A-Z]{6,12}$" ErrorMessage="密码必须为6~12位的字母和数字" runat="server"></asp:RegularExpressionValidator><br /> <asp:Label ID="lblConfirmPassword" Text="确认密码:" runat="server"></asp:Label> <asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox><br /> <asp:CompareValidator ID="cvConfirmPassword" ControlToValidate="txtConfirmPassword" ControlToCompare="txtPassword" Type="String" ErrorMessage="两次输入的密码不一致" runat="server"></asp:CompareValidator><br /> <asp:Button ID="btnSubmit" Text="提交" runat="server" OnClick="btnSubmit_Click" /> </form> <script runat="server"> protected void btnSubmit_Click(object sender, EventArgs e) { Response.Write("用户名:" + txtUserName.Text + "<br />"); Response.Write("密码:" + txtPassword.Text + "<br />"); Response.Write("确认密码:" + txtConfirmPassword.Text + "<br />"); } </script> </body> </html>

在上面的示例中,我们使用了三个验证控件分别验证了用户名、密码和确认密码三个字段。当用户点击提交按钮时,服务器端代码会输出用户输入的各个字段值。

结语

WebForms 是一个非常强大的 Web 应用开发框架,本文介绍了其中的一些实例,希望能对你的学习有所帮助。如果您对 WebForms 感兴趣,可以深入研究一下相关技术,提高自己的开发水平。