📜  ASP.Net Web表单功能(1)

📅  最后修改于: 2023-12-03 14:59:24.402000             🧑  作者: Mango

ASP.Net Web表单功能

ASP.Net Web表单是一种用于创建动态Web应用程序的技术。它允许程序员使用服务器端控件构建Web表单,这些表单可以处理用户输入、验证数据并向用户发送输出。Web表单还包括许多其他功能,例如使用Master Pages和Themes创建一致的页面布局和风格、使用ASP.Net控件处理数据、使用AJAX实现异步交互等。

1. Web表单控件

Web表单控件是Web表单应用程序中的基本构建块。它们允许程序员创建文本框、标签、按钮、列表框、下拉菜单等用户界面元素,同时还可以与服务器交互以处理用户输入和执行其他操作。以下是ASP.Net Web表单中一些常用的服务器端控件:

TextBox
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>

TextBox控件用于输入文本,类型为string。

Label
<asp:Label ID="lblName" runat="server"></asp:Label>

Label控件用于显示文本,类型为string。

Button
<asp:Button ID="btnSubmit" Text="Submit" runat="server" OnClick="btnSubmit_Click"></asp:Button>

Button控件用于触发事件,例如处理用户输入、保存数据等。

DropDownList
<asp:DropDownList ID="ddlCity" runat="server">
    <asp:ListItem Text="New York" Value="NY"></asp:ListItem>
    <asp:ListItem Text="Los Angeles" Value="LA"></asp:ListItem>
    <asp:ListItem Text="Chicago" Value="CH"></asp:ListItem>
</asp:DropDownList>

DropDownList控件用于显示列表和允许用户选择其中一项,类型为string。

GridView
<asp:GridView ID="grdEmployees" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" />
        <asp:BoundField DataField="Name" HeaderText="Name" />
        <asp:BoundField DataField="City" HeaderText="City" />
    </Columns>
</asp:GridView>

GridView控件用于显示数据列表,例如从数据库检索数据并显示在网格中。

2. Web表单事件

Web表单控件可用于触发事件,例如在按钮单击时处理用户输入。以下是ASP.Net Web表单中一些常用的服务器端事件:

Page_Load
protected void Page_Load(object sender, EventArgs e)
{
    // code here
}

Page_Load事件在页面加载时触发,通常用于初始化控件属性和执行其他操作。

Button_Click
protected void btnSubmit_Click(object sender, EventArgs e)
{
    // code here
}

Button_Click事件在按钮单击时触发,用于处理用户输入并执行其他操作。

GridView_RowCommand
protected void grdEmployees_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Edit")
    {
        int rowIndex = Convert.ToInt32(e.CommandArgument);
        GridViewRow row = grdEmployees.Rows[rowIndex];
        // code here
    }
}

GridView_RowCommand事件在GridView中的行命令(例如编辑、删除)触发时触发,用于处理用户交互并更新数据。

3. Web表单验证

Web表单验证是一种用于验证用户输入的技术。ASP.Net Web表单提供了多种验证控件,例如RequiredFieldValidatorCompareValidatorRegularExpressionValidator等,用于验证文本框、下拉菜单等用户界面元素的值。程序员还可以创建自定义验证器来执行更复杂的验证逻辑。

RequiredFieldValidator
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvName" ControlToValidate="txtName" ErrorMessage="Name is required!" runat="server"></asp:RequiredFieldValidator>

RequiredFieldValidator用于验证文本框输入字段是否为空。

CompareValidator
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:CompareValidator ID="cvPassword" ControlToValidate="txtConfirmPassword" ControlToCompare="txtPassword" ErrorMessage="Passwords do not match!" runat="server"></asp:CompareValidator>

CompareValidator用于验证两个文本框输入字段的值是否匹配。

RegularExpressionValidator
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="revEmail" ControlToValidate="txtEmail" ErrorMessage="Invalid email address!" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" runat="server"></asp:RegularExpressionValidator>

RegularExpressionValidator用于验证文本框输入字段的值是否与指定的正则表达式匹配。

4. Web表单数据处理与绑定

Web表单控件用于显示和处理数据,可以从各种数据源(例如数据库、XML文件、Web服务等)中检索数据并显示在网格视图、下拉菜单、列表框等控件中。ASP.Net提供了多种数据处理技术,例如ADO.Net、LINQ、Entity Framework等。

数据库检索
protected void Page_Load(object sender, EventArgs e)
{
    string connectionString = "Data Source=.;Initial Catalog=MyDatabase;Integrated Security=True";
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        string query = "SELECT EmployeeID, Name, City FROM Employees";
        SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
        DataTable table = new DataTable();
        adapter.Fill(table);
        grdEmployees.DataSource = table;
        grdEmployees.DataBind();
    }
}

上述代码演示了如何检索数据库中的数据并将其显示在GridView中。

LINQ查询
protected void Page_Load(object sender, EventArgs e)
{
    List<Employee> employees = new List<Employee>()
    {
        new Employee { EmployeeID = 1, Name = "John Doe", City = "New York" },
        new Employee { EmployeeID = 2, Name = "Jane Smith", City = "Los Angeles" },
        new Employee { EmployeeID = 3, Name = "Bob Johnson", City = "Chicago" }
    };
    var query = from emp in employees
                where emp.City == "New York"
                select emp;
    grdEmployees.DataSource = query.ToList();
    grdEmployees.DataBind();
}

public class Employee
{
    public int EmployeeID { get; set; }
    public string Name { get; set; }
    public string City { get; set; }
}

上述代码演示了如何使用LINQ查询从List中检索数据并将其显示在GridView中。

Entity Framework
protected void Page_Load(object sender, EventArgs e)
{
    using (MyDatabaseEntities context = new MyDatabaseEntities())
    {
        var query = from emp in context.Employees
                    where emp.City == "New York"
                    select emp;
        grdEmployees.DataSource = query.ToList();
        grdEmployees.DataBind();
    }
}

上述代码演示了如何使用Entity Framework从SQL Server数据库中检索数据并将其显示在GridView中。注意,MyDatabaseEntities是根据数据库架构自动创建的类。