ASP.NET學習(1)

《一》認識ASP.NET程序員

1.ASP.NET程序結構web

(1)前臺和後臺正則表達式

Default.aspx是進行界面設計的文件,一般稱爲前臺。用戶能看到。windows

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:第一部分暫時更新到這裏...

相關文章
相關標籤/搜索