《一》认识ASP.NET

1.ASP.NET程序结构

(1)前台和后台

Default.aspx是进行界面设计的文件,通常称为前台。用户能看到。

Default.aspx.cs是后台代码,由程序员完成后台代码的设计,。用户看不到。

Default.aspx源码界面顶部有一句声明:

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

CodeFile参数设置的内容就是本界面所关联的后台代码。

2.事件:两个参数:sender和e。告诉程序,谁(sender)做了什么(e)。

protected void Button1_Click(object sender, EventArgs e)
    {
        this.Label1.Text = "你已经单击了OK按钮,欢迎进入ASP.NET 3.5开发世界";
    }

理解windows系统是消息驱动的,循环消息机制。
3.程序处理过程和本质(这是重点★★★★★)

一个网页的完整处理过程,本质是一个事件处理的顺序。整个事件的完整处理过程,就是一个页面的生命周期。网页的生命周期主要分10步,也就是10个需要处理的事件。

(1)初始化对象

(2)导入ViewState数据

(3)用LoadPostData处理Postback数据

(4)导入对象

(5)RaisePostBackChanged事件

(6)处理客户端PostBack事件

(7)预先呈递对象

(8)保存ViewState

(9)呈递给页面

(10)销毁对象:服务器吧页面呈现给浏览器后,所有的对象都应该被销毁。销毁所有在建立这个页面时创建的对象。销毁任何对象都不会产生错误,包括页面对象。

4.配置文件:web.config。用于配置网站。

5.名词解释

(1).NET Framework:框架。支持生成和运行下一代应用程序和XML Web Services的内部windows组件。

(2)公共语言运行库: (common language runtime,CLR) 托管代码执行核心中的引擎。运行库为托管代码提供各种服务,如跨语言集成、代码访问安全性、对象生存期管理、调试和分析支持。

(3)托管代码:以运行库为目标的代码称为托管代码。

(4)非托管代码:不以运行库为目标的代码称为非托管代码。

(5)LINQ:一种集成查询语言,可支持对数据、对象等进行查询。

(6)WCF:一种服务框架,类似于早期的Remoting,但更加容易调用。

(7)WPF:一种最近的Windows Forms程序形式,用来创建更加美观的窗体界面。

(8)Ajax: 一个JS框架,用户B/S程序,也就是网站项目,支持客户端的快速响应。

(9)支持分页的数据模板空间:网站项目中,添加了ListView和DataPager空间,可自定义分页数据的读取和显示。

可以ASP.NET网页作为Web应用程序的用户界面和后台逻辑部分。使用服务器端代码来实现应用程序逻辑。服务器上运行的代码动态地生成到浏览器或客户端设备的网页输出。

6.装箱与拆箱

装箱:把值类型转换为引用类型

拆箱:将引用类型转换为值类型

       double a = 45.2; //定义值
        object b = a;    //装箱操作
        Response.Write(a.ToString() + "-" + b.ToString());//输出结果
       double a = 45.2; //定义值
        object b = a;    //转化为引用对象后的值
        double c = (double)b;//将引用对象拆箱,并返回值

7.普通数组和动态数组

       int[] a = new int[2]; //普通数组

        ArrayList ar = new ArrayList();//初始化动态数组
        ar.Add("A"); //在动态数组中添加值
        ar.Add("B");

8.泛型

类似C++中的模板

9.注释

C# 中的注释有多种情况,常见的分为三种:
(1)单行代码后的注释.使用//来注释。
(2)方法前的注释.用来概括说明方法的功能和方法中的参数意义,用///表示。
(3)对整个程序的说明. 一般用在程序的开始处,说明这个文件的来源或者版权。用/*xxxxx*/结束。

/// <summary>
///Class1 的摘要说明
/// </summary>
public class Class1
{
    public Class1()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }
}

10.对象、类、接口和继承

(1)C#只允许继承一个父类,但允许继承多个接口。

(2)局部类:用关键字partial修饰。

public partial class _Default : System.Web.UI.Page

11.隐式类型:var

12.类中属性赋值自动实现

public string name //姓名属性
        {
            get;
            set;
        }

13.Lambda表达式

类似C++的指针。在LINQ查询中应用非常广泛。

 

 

 

《二》网页控件

1.控件分类:Web控件和HTML控件

(1)HTML控件:只显示内容,不与服务器交互。

(2)Web控件:即服务器控件,每次操作时都与服务器交互。每次交互都会页面刷新。考虑效率问题。(在vs2008工具箱中显示的是“标准”分类)

2.使用控件

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

asp:TextBox     说明这是一个标准的Web控件

ID=”txtName”  此控件的唯一标识,可在后台代码中通过此ID访问该控件

runat=”server“ 表示次控件是运行在服务器端的

(2)使用控件的属性

方法1:在可视化设计窗口,使用属性窗口

方法2:在源码窗口,在源码的任何一个属性后面,按Space键(空格键),自动弹出当前控件的所有属性供选择

space

(3)控件事件处理

方法1:单击控件属性上的闪电图标,选择对应的事件处理

方法2:按钮事件可直接双击按钮控件

protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "欢迎你," + txtName.Text;
    }

3.表示类控件

Label:不进行操作,只显示数据。不允许用户单击或者选中。

4.输入类控件

(1)TextBox   不允许用户选择,只允许用户输入

(2)

RadioButton  单选按钮 ,要设置GroupName属性,表明是同一组

CheckBox  多选按钮

/// <summary>
    /// 单选按钮响应事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button2_Click(object sender, EventArgs e)
    {
        if (RadioButton1.Checked)
        {
            Label2.Text = "你选择的是一年级";
        }
        if (RadioButton2.Checked)
        {
            Label2.Text = "你选择的是二年级";
        }

    }
    /// <summary>
    /// 多选按钮响应事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button3_Click(object sender, EventArgs e)
    {
        if (CheckBox1.Checked && CheckBox2.Checked)
        {
            Label2.Text = "你选择了体育和音乐";
        }
        else if (CheckBox1.Checked)
        {
            Label2.Text = "你选择了体育";
        }
        else if (CheckBox2.Checked)
        {
            Label2.Text = "你选择了音乐";
        }
        else
        {
            Label2.Text = "两项都没有选择";
        }
    }

 

(2)DropDownList

DropDownList和ListBox功能一样,以列表形式显示多个选项。DropDownList带有下拉框,ListBox就是列表形式。

    /// <summary>
    /// DropDownList选择结果的按钮响应
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button4_Click(object sender, EventArgs e)
    {
        Label3.Text = "你选择的是:"+DropDownList1.SelectedValue;

    }
    /// <summary>
    /// ListView选择结果的按钮响应
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button5_Click(object sender, EventArgs e)
    {
        Label4.Text = "你选择的是:" + ListBox1.SelectedValue;
    }

DropDownList和ListView

5.布局类控件

一般主要参与界面的设计,不控制实际的代码,也不允许用户操作。

(1)Panel  面板控件

(2)Table  表格控件

<asp:Panel ID="Panel1" runat="server" Height="90px" Width="476px">
      //这里是在Panel中添加的控件
    </asp:Panel>


        <asp:Table ID="Table1" runat="server" GridLines="Both" Height="113px" Width="401px">
            <asp:TableRow runat="server">
                <asp:TableCell runat="server">第1格子</asp:TableCell>
                <asp:TableCell runat="server">第2格子</asp:TableCell>
            </asp:TableRow>
            <asp:TableRow runat="server">
                <asp:TableCell runat="server">第3格子</asp:TableCell>
                <asp:TableCell runat="server">第4格子</asp:TableCell>
            </asp:TableRow>
        </asp:Table>

table

6.提交类控件

用户输入完数据,或作出选择后,交给服务器处理后面的事情。通常通过按钮完成。

Web控件提供了3个按钮:Button、LinkButton、ImageButton。三种按钮用法基本一致。

 

3.验证控件

用来验证用户在页面上的输入,防止用户乱输入数据。

检查用户的输入,并实时给出错误的提示,以提示用户修改。

主要有6个验证控件:

RequiredFieldValidator:必须字段验证。用于检查是否有输入值

CompareValidator:比较验证。按控件的设置比较两个输入值

RangeValidator:范围验证。验证输入是否在指定范围内

RegularExpressionValidator:正则表达式验证。使用正则表达式验证控件的输入

CustomValidator:自定义验证。允许程序员以自定义方式来验证控件

ValidationSummary:汇总错误提示信息

 

3.1.RequiredFieldValidator:必须有输入

需要设置两个属性:ControlToValidate="TextBox_rfv"  //关联需要验证的控件

                                  ErrorMessage="必须输入内容"        //错误提示

 

    <div>
        <asp:TextBox ID="TextBox_rfv" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ControlToValidate="TextBox_rfv" ErrorMessage="必须输入内容"></asp:RequiredFieldValidator>
    </div>
        <asp:Button ID="Button_rfv" runat="server" Text="Button" />

RequiredFieldValidator

3.2.CompareValidator:比较控件。常用就是验证两个密码是否相同

<asp:CompareValidator ID="CompareValidator1" runat="server" 
            ControlToCompare="TextBox_new" ControlToValidate="TextBox_renew" 
            ErrorMessage="新旧密码不一致!"></asp:CompareValidator>

3.3.RangeValidator:范围验证控件

主要是设置4个属性值:

ControlToValidate关联需要验证的控件

ErrorMessage设置错误提示信息

MaximumValue最大值

MinimumValue最小值

<asp:TextBox ID="TextBox_rv" runat="server"></asp:TextBox>
        <asp:RangeValidator ID="RangeValidator1" runat="server" 
            ControlToValidate="TextBox_rv" ErrorMessage="范围错误,在0-100之间" MaximumValue="100" 
            MinimumValue="0"></asp:RangeValidator>

 

3.4.RegularExpressionValidator 正则表达式验证

通过正则表达式验证输入的数据是否符合指定格式。正则表达式写在ValidationExpression属性中。

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
            ControlToValidate="TextBox_rev" ErrorMessage="邮箱输入错误" 
            ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>

 

部分正则表达式验证:

功能 验证码
匹配Email \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+ ([-.]\w+)*
匹配URL http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
匹配负数  
匹配整数  
匹配26个英文字母  

3.5.CustomValidator 自定义验证控件

主要是实现一个自定义验证方法:ServerValidate事件,参数args.Value是需要验证的值

/// <summary>
    /// 自定义验证控件的验证方法
    /// </summary>
    /// <param name="source"></param>
    /// <param name="args"></param>
    protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        try
        {
            if (args.Value.Length == 8) //判断用户输入的长度是否是8位
            {
                args.IsValid = true; //验证通过
            }
            else
            {
                args.IsValid = false; //验证失败
            }
        }
        catch (System.Exception ex)
        {
            args.IsValid = false;//发生异常时,验证失败
        }
    }

3.6.ValidationSummary验证控件的错误汇总

用来显示页面上所有验证控件的错误信息。错误信息来自每个验证控件的ErrorMessage属性

有2个主要属性:

DisplayMode:指定显示模式,可以是列表、项目符号列表或单个段落

ShowSummary:控制是显示还是隐藏控件

imageimage

 

4. Calendar日历控件  可视日历控件

通过SelectedDate属性改变其他属性等。

image

 

5.AdRotator 动态广告控件

 

定义和用法

AdRotator 控件用于显示图像序列。

该控件使用 XML 文件来存储 ad 信息。XML 文件使用 <Advertisements> 开始和结束。在 <Advertisements> 标签内部,应该有若干个定义每条 ad 的 <Ad> 标签。每次加载这个页面时,会按照一定的概率加载其中一条<Ad>标签内的广告内容。

控件属性:

属性描述.NET
AdvertisementFile 包含 ad 信息的 XML 文件的路径。 1.0
AlternateTextField 代替广告的 Alt 文本而使用的数据字段。 2.0
ImageUrlField 代替广告的 ImageURL 属性而使用的数据字段。 2.0
KeywordFilter 根据类别对广告进行过滤。 1.0
NavigateUrlField 代替广告的 NavigateUrl 属性而使用的数据字段。 2.0
runat 规定该控件是服务器控件。必须设置为 "server"。 1.0
Target 在何处打开 URL。 1.0

 

<Ad> 标签中预定义的元素被列在下面:

属性描述
<ImageUrl> 可选。图像文件的路径。
<NavigateUrl> 可选。用户点击该 ad 时所链接的 URL。
<AlternateText> 可选。图像的可选文本。
<Keyword> 可选。ad 的类别。
<Impressions> 可选。显示概率。

xml文件示例:

<?xml version="1.0" encoding="utf-8" ?>
<Advertisements>
  <!--这是第1条Ad广告的内容-->
  <Ad>
    <ImageUrl>baidu.gif</ImageUrl>
    <NavigateUrl>http://www.baidu.com</NavigateUrl>
    <AlternateText>百度</AlternateText>
    <Impressions>80</Impressions>
    <Keyword>img1</Keyword>
  </Ad>
  <!--这是第2条Ad广告的内容-->
  <Ad>
    <ImageUrl>google.gif</ImageUrl>
    <NavigateUrl>http://www.google.com</NavigateUrl>
    <AlternateText>谷歌</AlternateText>
    <Impressions>80</Impressions>
    <Keyword>img2</Keyword>
  </Ad>
</Advertisements>

AdRotator

 

PS:第一部分暂时更新到这里...