C#网页设计 - Web控件

2023-10-27

1.  服务器控件

ASP.NET控件分为服务器控件和HTML标记。


服务器控件是在服务器端运行的执行程序逻辑的组件,服务器端的程序可以访问这类控件;而HTML标记是在客户端运行的,服务器端程序不能访问这类控件。


服务器控件编程的关键是runat属性,如果一个控件使用了runat="server"属性进行声明,则该控件被认为是服务器控件。

工具箱的“HTML”选项卡中的HTML控件都是HTML标记,可以通过加上runat="server"属性将它们改为服务器控件。
ASP.NET服务器控件又分为两大类:Web服务器控件和HTML服务器控件。

1..1  Web服务器控件的基本属性

Web服务器控件位于System.Web.UI.WebControl命名空间中,是从WebControl基类直接或间接派生的。


Web服务器控件的属性可以通过“属性”窗口来设置,也可以通过HTML代码实现。Web服务器控件以“asp:”为前缀,ID属性指定其ID值,作为控件的唯一标识。基本属性可为布局、行为、可访问性、外观等几类。

2 基本的Web服务器控件

2.1 Label控件又称为标签控件,用于显示静态文本。其主要的属性是Text,用于设置或获取该控件的显示文本。
仅当需要在服务器代码中更改文本内容或其他特性时,才使用Label控件

 

2.2 TextBox控件

TextBox控件是用于向Web页面输入信息的最常用的控件。默认为单行文本框,可通过TextMode属性来改变它的文本显示模式,该属性是TextBoxMode枚举类型的属性值,具有如下三种可选值。
①SingleLine:表示单行输入模式。
②MultiLine:表示多行输入模式。
③PassWord:表示密码输入模式。

例:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="W5_3_2_1.aspx.cs" Inherits="W5_3_2_1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <p>单价:<asp:TextBox ID="TextBox1" runat="server" Text="0" AutoPostBack="True" 
                ontextchanged="TextBox1_TextChanged"></asp:TextBox></p>
        <p>数量:<asp:TextBox ID="TextBox2" runat="server" Text="0" AutoPostBack="True" 
                ontextchanged="TextBox2_TextChanged"></asp:TextBox></p>
        <p>
           
        </p>
        <p>
            <asp:Label ID="Label1" runat="server" Text="<%#Convert.ToString(Convert.ToDecimal(TextBox1.Text)*Convert.ToInt32(TextBox2.Text))%>"></asp:Label>
        </p>
    </div>
    </form>

    <script type="text/javascript">
       
    </script>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class W5_3_2_1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Page.DataBind();

    }



    protected void TextBox2_TextChanged(object sender, EventArgs e)
    {
        TextBox1.DataBind();

    }
    protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
        TextBox2.DataBind();
    }
}

 

 

 

 

2.3  Button控件

Button控件可以分为提交按钮和命令按钮。


默认的Button按钮为提交按钮,在单击时,将包含它的表单提交给相应服务器进行处理,一般响应Click事件。


当设置了CommandName属性和CommandArgument属性后,Button按钮成为命令按钮,用于处理控件命令事件,在单击时可响应Command事件,从事件参数中可获取命令名及命令参数值。

例:响应Command事件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="W5_3_3_1.aspx.cs" Inherits="W5_3_3_1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <div class="container mx-auto text-center m-auto">
     <p>
         <asp:Button ID="Button1" runat="server" Text="Button1" 
             CommandArgument="button1" CommandName="B1" oncommand="Button1_Command" />&nbsp;
     
        <asp:Button ID="Button2" runat="server" Text="Button2" CommandArgument="button2" 
             CommandName="B2" oncommand="Button2_Command" /></p>
        <p>
            <asp:Label ID="Label1" runat="server" Text="你点击的是:Button1" Enabled="False"></asp:Label></p>
        <p>
            <asp:Label ID="Label2" runat="server" Text="你点击的是:Button2" Enabled="False" 
                ViewStateMode="Enabled"></asp:Label></p>
    </div>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class W5_3_3_1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Command(object sender, CommandEventArgs e)
        
    {
        Label1.Visible = true;
       // Label1.Text = "你点击的是:" + e.CommandArgument.ToString();
        Label2.Visible = false;
    }

    protected void Button2_Command(object sender, CommandEventArgs e)
    {
        Label2.Visible = true;
       // Label2.Text = "你点击的是:" + e.CommandArgument.ToString();
        Label1.Visible = false;
    }
}

 

 3. 列表控件

3.1 ListBox

ListBox控件(列表框控件)用于显示一组列表项,用户可以从中选择一项或多项。

例1:实现选择按钮

 

w5_4_4_1.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="w5_4_1_1.aspx.cs" Inherits="w5_4_1_1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>listBox</title>
   <style type="text/css">
       #div0
       {
          width:400px;
          height:200px;
          margin-left:auto;
          margin-right:auto;
          margin-top: 50px;
          margin:50px auto auto auto;
           
        }
       #div1
       {
         float:left;
         width:150px;
         height:200px;
         margin-right:10px;
         
        }
        #div2
        {
            float:left;
            width:80px;
            height:200px;
            text-align:center;
            margin-right:10px;
          }
   
       .btn
       {
         width:  50px;
         margin-top:10px;
          
           
           
        }
   </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>

       <div id="div0">
         <div id="div1">
             <asp:ListBox ID="lstCouser" runat="server" Height="200px" Width="150px" 
                 SelectionMode="Multiple" 
                 onselectedindexchanged="lstCouser_SelectedIndexChanged">
                 <asp:ListItem>动态网站设计</asp:ListItem>
                 <asp:ListItem>算法设计与分析</asp:ListItem>
                 <asp:ListItem>Java程序设计</asp:ListItem>
                 <asp:ListItem>数据结构</asp:ListItem>
             </asp:ListBox>
         </div>
         <div id="div2">
             <asp:Button ID="btnSelectAll" runat="server" Text=">>" CssClass="btn" 
                 onclick="btnSelectAll_Click" />
             <asp:Button ID="btnRemoveAll" runat="server" Text="<<" CssClass="btn" 
                 onclick="btnRemoveAll_Click" />
             <asp:Button ID="btnSelect" runat="server" Text=">" CssClass="btn" 
                 onclick="btnSelect_Click" />
             <asp:Button ID="btnRemove" runat="server" Text="<" CssClass="btn" 
                 onclick="btnRemove_Click" />
          </div>
          <div id="div3">
              <asp:ListBox ID="lstSelectdCourse" runat="server" Height="200px" Width="150px" SelectionMode="Multiple"></asp:ListBox>
          </div>
       </div>
    
    </div>
    </form>
</body>
</html>

W5_4_4_1.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class w5_4_1_1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void lstCouser_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
    protected void btnSelectAll_Click(object sender, EventArgs e)
    {
        int count = lstCouser.Items.Count;
        for (int i = 0; i < count; i++)
        {
            ListItem item = lstCouser.Items[0];
            lstSelectdCourse.Items.Add(item);
            lstCouser.Items.Remove(item);
        }
    }
    protected void btnSelect_Click(object sender, EventArgs e)
    {
        int count = lstCouser.Items.Count;
        int index = 0;
        for (int i = 0; i < count; i++)
        {

            ListItem item = lstCouser.Items[index];
            if (item.Selected == true)
            {
                lstSelectdCourse.Items.Add(item);
                lstCouser.Items.Remove(item);
                index--;

             
            }
            index++;
        }
    }
    protected void btnRemoveAll_Click(object sender, EventArgs e)
    {
        int count = lstSelectdCourse.Items.Count;
        for (int i = 0; i < count; i++)
        {
            ListItem item = lstSelectdCourse.Items[0];
            lstCouser.Items.Add(item);
            lstSelectdCourse.Items.Remove(item);
        }

    }
    protected void btnRemove_Click(object sender, EventArgs e)
    {
        int count = lstSelectdCourse.Items.Count;
        int index = 0;
        for (int i = 0; i < count; i++)
        {

            ListItem item = lstSelectdCourse.Items[index];
            if (item.Selected == true)
            {
                lstCouser.Items.Add(item);
                lstSelectdCourse.Items.Remove(item);
                index--;


            }
            index++;
        }

    }
}

 

3.2 DropDownList控件

DropDownList控件(下拉列表框控件)让用户可以从单项选择下拉列表框中进行选择。

例子:

 

w5_4_2_1.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="w5_4_2_1.aspx.cs" Inherits="w5_4_2_1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <p>爱好;
           <asp:DropDownList ID="ddlHobby" runat="server" AutoPostBack="True" 
               onselectedindexchanged="ddlHobby_SelectedIndexChanged">
           </asp:DropDownList>
       </p>
       <p>
        
           <asp:Label ID="lbl" runat="server" Text="请选择爱好!"></asp:Label>
       
       </p>
    </div>
    </form>
</body>
</html>

w5_4_2_1.aspx.cs:
 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class w5_4_2_1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) 
        {
            List<string> List = new List<string> { "打球", "看书", "上网", "散步" };
            ddlHobby.DataSource = List;
            Page.DataBind();

           
          
        }
    }
    protected void ddlHobby_SelectedIndexChanged(object sender, EventArgs e)
    {
        lbl.Text = "你的爱好是: " + ddlHobby.SelectedItem.Text;

        

    }
}

例二:

w5_4_2_2.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="w5_4_2_2.aspx.cs" Inherits="w5_4_2_2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>DropDownlist</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <p>
            <asp:DropDownList ID="ddlDep" runat="server" AppendDataBoundItems="True" AutoPostBack="True">
            </asp:DropDownList>
        </p>
        <p>
            <asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click" /></p>
    <p>
        <asp:Label ID="lblMessage" runat="server" Text="Label"></asp:Label></p>
        
    </div>
    </form>
</body>
</html>

w5_4_2_2.aspx.cs:
 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class w5_4_2_2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) { 
        
          List<Dep> deps = new List<Dep>();
          deps.Add(new Dep("d01", "中文系"));
          deps.Add(new Dep("d02", "外语系"));
          deps.Add(new Dep("d03", "数学系"));
          ddlDep.DataSource = deps;
          ddlDep.DataTextField = "Dname";
          ddlDep.DataValueField = "Dno";
          ddlDep.DataBind();
          ddlDep.Items.Insert(0,new ListItem("无",""));
            //添加空系

        }


    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        lblMessage.Text = "你选中的值是:" + ddlDep.SelectedItem.Value+"<br />对应的文本是:" + ddlDep.SelectedItem.Text;

        
    }
}

 

 

3.3  CheckBoxList控件

CheckBoxList控件又称为复选框列表控件,该控件为用户提供了一种输入布尔型数据的方法,允许用户进行选择。
CheckBoxList控件与CheckBox控件类似,不同之处是CheckBox只有一个复选框,CheckBoxList包含多个复选框。

例:

 

 

w5_4_3_1..aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="w5_4_3_1.aspx.cs" Inherits="w5_4_3_1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <p>请选择你的爱好:</p>
       <p> 
           <asp:CheckBoxList ID="chkHobby" runat="server" AutoPostBack="True" 
               CellSpacing="5" onselectedindexchanged="chkHobby_SelectedIndexChanged" 
               RepeatColumns="2">
               <asp:ListItem>读书</asp:ListItem>
               <asp:ListItem>绘画</asp:ListItem>
               <asp:ListItem>游泳</asp:ListItem>
               <asp:ListItem>音乐</asp:ListItem>
               <asp:ListItem>摄影</asp:ListItem>
               <asp:ListItem>跳舞</asp:ListItem>
           </asp:CheckBoxList>
       </p>
       <p>
           <asp:Label ID="lblMessage" runat="server" Text=""></asp:Label></p>
    </div>
    </form>
</body>
</html>

W5_4_3_1.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class w5_4_3_1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void chkHobby_SelectedIndexChanged(object sender, EventArgs e)
    {
        lblMessage.Text = "你的爱好:<br /><br />";
        for (int i = 0; i < chkHobby.Items.Count; i++) {
            if (chkHobby.Items[i].Selected) {
                lblMessage.Text += chkHobby.Items[i].Text + "<br />";
            
            }
        
        }
    }
}

 

 

3.4  RadioButtonList控件

RadioButtonList控件(单选按钮列表控件)用于构建单选按钮列表,允许用户互斥地在列表中选择一项。

 

例:

 

W5_4_4_1.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="w5_4_4_1.aspx.cs" Inherits="w5_4_4_1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
       table
       {  
           border-style :solid;
           border-width:1px 0px 0px 1px;
           width: 100%;
           
           
       }
       .td1
       {
           border-style: solid;
           border-width: 0px 1px 1px 0px;
           text-align: center;
      }
      .td2
      {
          border-style:solid;
          border-width: 0px 1px 1px 0px;
          
      }
    #div0
    {
        width:300px;
        height: 20px auto 0px auto ;
        
     }
    
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="div0">
      <table cellspacing="0">
         <tr>
          <td class="td1">
            性别:
         </td>
         <td class="td2"> 
             <asp:RadioButtonList ID="radlGender" runat="server" 
                 RepeatDirection="Horizontal" AutoPostBack="False">
                 <asp:ListItem>男</asp:ListItem>
                 <asp:ListItem>女</asp:ListItem>
             </asp:RadioButtonList>
         </td>
         </tr>
        <tr>
          <td class="td1">
            职称:
         </td>
         <td class="td2"> 
             <asp:RadioButtonList ID="radlTitle" runat="server" AutoPostBack="False">
                 <asp:ListItem>助教</asp:ListItem>
                 <asp:ListItem>讲师</asp:ListItem>
                 <asp:ListItem>副教授</asp:ListItem>
                 <asp:ListItem>教授</asp:ListItem>
             </asp:RadioButtonList>
         </td>
         </tr>
      </table>

      <p>
          <asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click" /></p>
          <p> 
              <asp:Label ID="lblmassage1" runat="server" Text=""></asp:Label><br />
              <asp:Label ID="lblmessage2" runat="server" Text=""></asp:Label>
          </p>
    </div>
    </form>
</body>
</html>

W5_4_4_1.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class w5_4_4_1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        foreach (ListItem item in radlGender.Items) {
            if (item.Selected) {
                lblmassage1.Text = "性别为;" + item.Text;

            }
        
        }
        foreach (ListItem item in radlTitle.Items)
            if (item.Selected)
                lblmessage2.Text = "职称为;" + item.Text;
    }
}

bootstrap4实现

w5_4_4_2.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="w5_4_4_2.aspx.cs" Inherits="w5_4_4_2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>bs4实现</title>
     <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
<div  class="container">
      <table class="table table-bordered w-25 h-25 table-striped" >
         <tr>
          <td >
            性别:
         </td>
         <td> 
             <asp:RadioButtonList ID="radlGender" runat="server" 
                 RepeatDirection="Horizontal" AutoPostBack="False">
                 <asp:ListItem>男</asp:ListItem>
                 <asp:ListItem>女</asp:ListItem>
             </asp:RadioButtonList>
         </td>
         </tr>
        <tr>
          <td>
            职称:
         </td>
         <td> 
             <asp:RadioButtonList ID="radlTitle" runat="server" AutoPostBack="False">
                 <asp:ListItem>助教</asp:ListItem>
                 <asp:ListItem>讲师</asp:ListItem>
                 <asp:ListItem>副教授</asp:ListItem>
                 <asp:ListItem>教授</asp:ListItem>
             </asp:RadioButtonList>
         </td>
         </tr>
      </table>

      <p>
          <asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click" /></p>
          <p> 
              <asp:Label ID="lblmassage1" runat="server" Text=""></asp:Label><br />
              <asp:Label ID="lblmessage2" runat="server" Text=""></asp:Label>
          </p>
    </div>
    </form>
</body>
</html>

w5_4_4_2.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class w5_4_4_2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {

    }
}

3.5 验证控件

为了确保用户在表单的各个域中输入正确的数据或所输入的数据符合商业逻辑的需求,应用程序需要进行客户端和服务器端的一系列验证。
ASP.NET内置了一套用于进行验证的控件,使用这套控件,开发人员只需要定义几个属性或编写少量代码,就可以实现验证过程。

3.5.1 RequiredFieldValidator控件

RequiredFieldValidator控件要求用户必须在所关联的控件中输入一个值,不能为空。
常用属性说明:
①ControlToValidate,要进行检查的控件
②ErrorMessage,当检查不合法时,显示的错误信息
③Display,错误信息的显示方式。Static,错误信息在页面占有确定的位置;Dymatic,在错误信息出现时才占用页面空间;None,不出现错误信息,但可在ValidatorSummary控件中统一显示。
④ForeColor,错误信息文本的颜色

例:

w5_5_1_1.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="w5_5_1_1.aspx.cs" Inherits="w5_5_1_1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <p> 姓名:
           <asp:TextBox ID="userName" runat="server"></asp:TextBox>
          <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
               ErrorMessage="*姓名不能为空" ControlToValidate="userName" ForeColor="Red"></asp:RequiredFieldValidator>
       </p>
       <p>
           <asp:Button ID="btnSubmit" runat="server" Text="提交" /></p>
         <p>
             <asp:Label ID="lblMessage" runat="server" Text="还没提交"></asp:Label></p>
    </div>
    </form>
</body>
</html>

w5_5_1_1.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class w5_5_1_1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack && (userName.Text != null))
        {

            lblMessage.Text = "已提交,";
       
        }
    }
}

 

 

3.5.2 CompareValidator控件

用于检查所关联的控件的值与其他值比较的结果,或进行一个数据类型的检查。
常用属性:
①Type,要比较的控件的数据类型,可以是String、Integer、Double、Date或Currency。
②Operator,比较操作,有七种比较方式,等于、不等、大于、大于等于、小于、小于等于及数据类型检查。
③ControlToCompare,与所验证的输入控件进行比较的输入控件
④ValueToCompare,与所验证的输入控件进行比较的常数值

例子:

w_5_2_1.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="w5_5_2_1.aspx.cs" Inherits="w5_5_2_1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <p> 用户名:<asp:TextBox ID="userName" runat="server"></asp:TextBox></p>
     <p>用户密码:<asp:TextBox ID="password1" runat="server" TextMode="Password"></asp:TextBox></p>
     <p>确认密码:<asp:TextBox ID="password2" runat="server" TextMode="Password"></asp:TextBox>
     
         <asp:CompareValidator ID="CompareValidator1" runat="server" 
             ErrorMessage="*密码不一致" ControlToCompare="password1" ControlToValidate="password2" 
             ForeColor="Red"></asp:CompareValidator>
     </p>

     <p>出生日期:<asp:TextBox ID="birthday" runat="server"></asp:TextBox>
         <asp:CompareValidator ID="CompareValidator2" runat="server" 
             ErrorMessage="*日期格式错误" ControlToValidate="birthday" ForeColor="Fuchsia" 
             Operator="DataTypeCheck" Type="Date"></asp:CompareValidator>
     </p>
     <p>
            <asp:Button ID="btnSubmit" runat="server" Text="提交" /></p>
    </div>
    </form>
</body>
</html>

w5_5_2_1.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class w5_5_2_1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

3.5.3 RangeValidator控件

用于检查所关联控件的值是否在一个最小值和最大值之间。

 

3.5.4 RegularExpressionValidator控件

用于检查输入控件的值是否匹配正则表达式定义的模式。
如果输入控件为空,则表明验证成功。如果相关输入控件需要一个值,则除了使用 RegularExpressionValidator 控件外,还须使用 RequiredFieldValidator 控件。

正则表达式是正则表达式引擎尝试匹配输入文本的一种模式。模式由一个或多个字符文本、运算符或构造组成。
语法参见“正则表达式语言元素”。
https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/regular-expression-language-quick-reference


https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/regular-expression-language-quick-reference

 

https://www.cnblogs.com/xinaixia/p/4976821.html

https://www.cnblogs.com/testsec/p/6095656.html

https://www.cnblogs.com/eric_lin/archive/2010/11/11/1874749.html

https://www.cnblogs.com/shiguangshuo/p/4838845.html

https://blog.csdn.net/my98800/article/details/62214649

例子:

 

W5_5_4_1.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="w5_5_4_1.aspx.cs" Inherits="w5_5_4_1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <p> 电话:<asp:TextBox ID="txtTel" runat="server"></asp:TextBox>
     </p>
    <p> Email: 
        <asp:TextBox ID="TxtEmail" runat="server"></asp:TextBox></p>
        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" validationexpression= "(13[0-9]{9})|(159[0-9]{8})|([0-9]{4}-[0-9]{8})|([0-9]{3}-[0-9]{8})|([0-9]{4}-[0-9]{7})"
            ErrorMessage=". 号码输入有误" ForeColor="Red" ControlToValidate="txtTel"></asp:RegularExpressionValidator>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ErrorMessage="*号码输入有误" ControlToValidate="txtTel"></asp:RequiredFieldValidator>
            
            <br />
       
        <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" 
            ErrorMessage="*Email输入有误" 
            ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
            ControlToValidate="TxtEmail"></asp:RegularExpressionValidator>

        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ErrorMessage="Email输入有误" ControlToValidate="TxtEmail"></asp:RequiredFieldValidator>
        <p>
            <asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click" /></p>
        <asp:Label ID="lblMessage" runat="server" Text=""></asp:Label>
    </div>
    </form>
</body>
</html>

aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;

public partial class w5_5_4_1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {/*
        Regex re = new Regex(@"[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?");//实例化一个Regex对象

        if (re.IsMatch(TxtEmail.Text) == true)//验证数据是否匹配
        {

            lblMessage.Text = "邮箱正确";//匹配则弹出”邮箱正确“

        }

        else
        {

            lblMessage.Text = "邮箱错误";//不匹配则弹出”邮箱错误“

        }
        Regex rx = new Regex(@"^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$|^(13|15)\d{9}$", RegexOptions.None);
        */
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#网页设计 - Web控件 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么

随机推荐

  • 树莓派4B安装详细教程,从零开始!(2)

    树莓派4B安装详细教程 从零开始 2 前言 一 准备材料 1 硬件材料 2 软件材料 二 配置步骤 1 获取树莓派IP地址 1 通过有线网进行连接 这时候还需要 一根网线 2 通过无线网进行连接 这时候还需要一个 读卡器 2 连接电脑 3
  • 学习《R语言之书-编程与统计》

    R语言学习笔记1 1 新手入门 1 winows ctrl R 表示执行当前编辑器的代码 多个编辑窗口 编辑器外观设置 preference Edit GUI preferences 2 代码添加注释 gt This is a compen
  • 从Java的角度理解前端框架,nodejs,reactjs,angularjs,requirejs,seajs

    http www cnblogs com siwy p 5045556 html 从Java的角度理解前端框架 nodejs reactjs angularjs requirejs seajs 前端神秘的面纱 对后端开发来说 前端是神秘的
  • Chrome,IE等浏览器主页被hao123等篡改的解决方法

    概述 今天自己装了一个破解版的软件 然后我电脑上所有浏览器主页都被篡改了 不管是chrome IE 搜狗全部中招 MD Fuck 忍不了啊 上网搜解决方法 然后一步一步试吧 最后问题解决了 但是在网上找到的答案并不完整 我还算对电脑熟悉 摸
  • <python爬虫之JS逆向实例-2>某宇创-状态码521-加速乐

    声明 本文只作学习研究 禁止用于非法用途 否则后果自负 如有侵犯了您的合法权益 请告知 我将及时更正 删除 谢谢 邮箱地址 lc1139411732 163 com 目标站点 aHR0cHM6Ly93d3cuc2VlYnVnLm9yZy92
  • STC12C5A系列单片机内部 EEPROM 的应用

    参考范例程序 eeprom c include eeprom h Disable ISP IAP EEPROM function Make MCU in a safe state void IapIdle IAP CONTR 0 Close
  • 零基础如何自学Java?

    零基础学习Java 肯定得先去了解Java这门语言 Java是什么 都需要学习什么内容 学出来都能做什么 了解清楚之后在针对性的去学习 这样学习效果才会好 不要盲目的去学习 当然 学习Java肯定是要清楚自己为什么学Java 带有目标性的去
  • python快速抽取二维列表第二维元素

    有一个二维列表 如果需要遍历每一行 相信大家都会 matrix 1 2 3 4 5 6 7 8 9 for row in matrix print row 如果要每次取一列 如果借助numpy的话 我们可以这样 import numpy a
  • android 网络邻居,魅族Flyme系统中怎么设置网络邻居?

    魅族Flyme3 0系统后 系统功能增添了很多新的有趣的功能 在手机的文件管理中有个网络邻居功能 正常情况下是不常用 但在电脑被使用 你需要看电脑的文件时 这个功能就显得很方便 1 打开电脑 在电脑桌面上找到我的电脑 右键 属性 2 在属性
  • 什么是jsp?与servlet区别?request responds cookies session 整理与使用?controller与servlet的区别?

    1 什么是servlet Servlet Servlet Applet 是用JAVA编写的服务器端程序 1 定义 狭义上 指java语言实现的一个接口 广义上 指任意一个实现了这个Servlet接口的类 2 作用 servlet由servl
  • 解决java.net.UnknownHostException:namenode

    报错 原因在于spark配置文件spark defaults conf中配置出错了 错误配置如下 解决方案 spark master 修改成正确的 spark eventLog dir 修改成正确的
  • AesEncryptHelper帮助类,实现C#版Aes加解密

  • Spring Boot 2.x使用篇(一)—— 初识Spring Boot

    文章目录 1 Spring Boot 2 x概述 1 1 Spring Boot与Spring 1 2 Spring Boot与Spring MVC 1 3 Spring Boot的优点 2 IntelliJ IDEA中搭建Spring B
  • virtio 与vhost_net介绍

    1 virtio基本构建模块 virtio是一种I O半虚拟化解决方案 是一套通用I O设备虚拟化的程序 是对半虚拟化Hypervisior中的一组通用I O设备的抽象 是标准化的的开放接口 以使得VM能够访问简化的设备 如块设备和网络设备
  • jAVA编写员工类Employee

    public class Employee private int id private byte sex private String name private String duty private float salary priva
  • 爬虫怎么解决IP限制问题?

    爬虫时 我们不可避免地会遇到网页的反爬封锁 所以有了爬虫的攻防 两股力量在攻防之间不断的对抗 接下来 我们将介绍六种爬虫时ip限制的方法 方法一 1 IP是必须的 如果条件允许 建议使用代理IP 2 在具有外部网络IP的机器上部署代理服务器
  • 良许Linux

    密码的重要性 相信大家都不言而喻 而密码泄漏或信息泄漏 经常是层出不穷地出现 令人防不胜防 所以 一个强大而复杂的密码是保证自己账户安全的第一步 为了防止信息泄漏 我们可以做些什么呢 密码足够复杂 每个平台密码都不一样 比如QQ 微信 邮箱
  • spring-security--基础--4.1--案例:简单登陆登出

    spring security 基础 4 1 案例 简单登陆登出 代码位置 https gitee com DanShenGuiZu learnDemo tree master spring security learn 1 介绍 通过Sp
  • 前端单页面(SPA)和多页面(MPA)

    了解单页面和多页面应用程序 单页面和多页面 SPA Single Page Application 单页面应用程序 例如 后台管理系统 整个应用中只有一个页面 index html MPA Multiple Page Application
  • C#网页设计 - Web控件

    1 服务器控件 ASP NET控件分为服务器控件和HTML标记 服务器控件是在服务器端运行的执行程序逻辑的组件 服务器端的程序可以访问这类控件 而HTML标记是在客户端运行的 服务器端程序不能访问这类控件 服务器控件编程的关键是runat属