第5章學生信息注冊與系統_第1頁
第5章學生信息注冊與系統_第2頁
第5章學生信息注冊與系統_第3頁
第5章學生信息注冊與系統_第4頁
第5章學生信息注冊與系統_第5頁
已閱讀5頁,還剩109頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-5.1 學生信息注冊學生信息注冊-5.2 系統登錄系統登錄L5.1 學生信息注冊學生信息注冊L5.2 系統登錄系統登錄設計好的學生信息注冊模塊如圖5.1、圖5.2所示。圖5.1 用戶注冊頁面(1)圖5.2 用戶注冊頁面(2)設計好的登錄頁面效果如圖5.3所示。圖5.3 系統登錄頁面效果1學生信息注冊頁面的布局學生信息注冊頁面的布局為了方便學生的注冊,把學生的注冊頁面分為3個視圖完成,第1個視圖學生錄入自己的學號和姓名,第2個視圖學生錄入自己的個人信息和密碼保護信息,第3個視圖顯示用戶錄入的信息,并提示用戶注冊成功。因此用戶注冊頁面的布局應按照如圖5.4所示設計。圖5.4 學生信息注冊頁面的布

2、局2設計學生信息注冊頁面設計學生信息注冊頁面設計步驟如下所示:(1)打開創建的“學生成績管理系統”網站項目,右擊“解決方案資源管理器”內的Students文件夾,選擇“添加新項”選項,在彈出的“添加新項”對話框中,選擇“Web窗體”模板,命名為“StudentRegister.aspx”,選擇“Visual C#”語言,不選中“選擇母版頁”復選框,單擊“添加”按鈕完成學生信息注冊頁面的創建。(2)切換到StudentRegister.aspx頁面的設計視圖,打開屬性窗口并選擇頂部下拉框中的“Document” 文擋對象,設置StyleSheetTheme屬性為“主題1”,把光標定位到“設計視圖

3、”中的Div內,打開“應用樣式”窗口(選擇“視圖”“應用樣式”菜單項),單擊“應用樣式”窗口中的“#innerLayout”樣式規則,給該層應用樣式規則,打開頁面的“源”視圖,選中標記,打開“應用樣式”窗口,單擊“新建樣式”按鈕,出現“新建樣式”窗口,設置“選擇器”為“級聯樣式”,選中“塊”類別,設置text-align屬性為“center”。(3)切換到StudentRegister.aspx頁面的源視圖,光標定位在Div內,雙擊“工具箱”的“標準”選項卡中的MultiView控件,并在MultiView控件內分別添加3個View控件,添加后視圖中的代碼如下: (4)切換到StudentRe

4、gister.aspx頁面的設計視圖,在3個View中分別添加Panel控件,3個Panel控件的GroupingText屬性分別設置為“錄入姓名與學號”、“錄入基本信息與密碼保護信息”和“你的填寫信息”。(5)光標定位到“錄入姓名與學號”的Panel中,選擇“表”“插入表”菜單項,彈出“插入表格”對話框,設置行數為2,列數為3,單擊“確定”按鈕,添加一個2行3列的表格。按照同樣的方法在“錄入基本信息與密碼保護信息”Panel內插入一個2行3列的表格,在“你的填寫信息”Panel內插入一個2行2列的表格。 (6)在“解決方案資源管理器”內,打開主題文件夾中的StyleSheet.css文件,在

5、其內部加入如下的代碼。(7)選擇“錄入姓名與學號”Panel內的Table的第一列,通過“應用樣式”窗口,給其應用“ThreeTableOne”樣式,同樣的方法給第二列應用“ThreeTableTwo”樣式,第三列應用“ThreeTableThree”樣式。“錄入基本信息與密碼保護信息”Panel內的Table的第一列應用“ThreeTableOne”樣式,第二列應用“ThreeTableTwo”樣式,第三列應用“ThreeTableThree”樣式。“你的填寫信息”Panel內的Table第一列應用“TwoTableOne”,第二列應用“TwoTableTwo”。(8)在“錄入姓名與學號”P

6、anel內的Table中按照如圖5.5所示添加控件,并按照表5.1設置相關控件的屬性。圖5.5 View1設計控 件 類 型相關屬性和值TextboxID=“TextBoxstuID”, Width=“200 px”TextboxID=“TextBoxstuName”, Width=“200 px”RequiredFieldValidatorID=“RequiredFieldValidatorControlToValidate =“TextBoxstuName”ErrorMessage=“必須錄入姓名”RequiredFieldValidatorID=“RequiredFieldValidat

7、orControlToValidate =“TextBoxstuID”ErrorMessage=“必須錄入學號”ButtonID=“Button, Text=“下一步”, Width=“80 px”表5.1 控件屬性設置(9)在“錄入基本信息與密碼保護信息”Panel內的Table中按照如圖5.6所示添加所需控件,相應控件的添加與設置方法見表5.2。圖5.6 View2設計3編寫學生信息注冊頁面后臺代碼編寫學生信息注冊頁面后臺代碼添加代碼步驟如下:(1)頁面第一次加載的時候,設置MultiView默認顯示第一個View,因此需要在Page的Load事件內添加代碼,按【F7】鍵切換到Studen

8、tRegister.aspx.cs代碼頁,添加如下代碼:/頁面第一次請求的時候執行if (!Page.IsPostBack) this.MultiView1.ActiveViewIndex = 0; /顯示第一個視圖(2)當用戶填寫完學號和姓名后,單擊“下一步”按鈕,需要判斷系統里是否已有重復的學號,如果有則提示用戶,沒有則設置MultiView顯示第二個View,并設置驗證碼為當前時間,因此需要添加“下一步”按鈕的Click事件代碼,按【F7】鍵切換到設計視圖,雙擊“下一步”按鈕,系統自動切換到代碼頁并添加了“Button1_Click”方法,在此方法中添加如下代碼。在頂部引入如下的命名空間

9、:using System.Data.SqlClient;using System.Collections.Generic;(3)當通過文件上傳控件瀏覽選中一個圖片后,單擊“上傳”按鈕把需要上傳的圖片上傳到服務器上,并通過Image控件顯示出所上傳的圖片。首先在解決方案資源管理器內添加一個命名為“upload”文件夾用于存放圖片,按【F7】鍵切換到設計視圖,雙擊“上傳”按鈕,添加“上傳”按鈕的Click事件代碼,代碼如下所示:/*利用FileUpload控件的PostedFile屬性的SaveAs方法進行保存,保存的路徑應該是服務器端的絕對路徑*/利用Server.MapPath實現相對路徑與

10、絕對路徑的轉換this.FileUploadstuPic.PostedFile.SaveAs(Server.MapPath(/upload/) + this.FileUploadstuPic.FileName);/把上傳的文件的相對地址賦值給image控件this.ImagestuPic.ImageUrl = /upload/ + this.FileUploadstuPic.FileName;(4)填寫完所有信息后,單擊“注冊完成”按鈕,實現把學生所填寫的所有信息添加到數據庫中。按【F7】鍵切換到設計視圖,雙擊“注冊完成”按鈕,添加Click事件代碼,代碼如下。4在瀏覽器中使用本頁在瀏覽器中使

11、用本頁(1)在瀏覽器中查看本頁,首先顯示如圖5.7所示的界面。圖5.7 學生注冊界面(a)(2)分別錄入用戶名和學號,單擊“下一步”按鈕,則出現如圖5.8所示的錄入詳細信息界面:圖5.8 學生注冊界面(b)1設計系統登錄布局設計系統登錄布局登錄界面的布局設計如圖5.9所示。 用戶名用戶名輸入框密 碼密碼輸入框用戶類別用戶類別下拉框登 錄 系統圖標 學生注冊圖5.9 登錄界面的布局設計2設計系統登錄頁面設計系統登錄頁面設計步驟如下:(1)打開前面所創建的網站項目,在“資源管理器解決方案”中右擊“Default.aspx”,選擇“視圖設計器”,選中頁面中的div,通過“屬性”窗口設置其id為“ma

12、in”。(2)選擇“視圖”“應用樣式”菜單項,打開“應用樣式”窗口。單擊窗口中的“新建樣式”選項,在彈出的“新建樣式”對話框中的選擇器框中輸入“#main”,選擇“定位”類別,設置position為“absolute”,width為“700 px”,height為“180 px”,top為“50%”,left為“50%”。選擇“方框”類別,設置margin的top為“90 px”,right和bottom為“0 px”,left為“350 px”。單擊“確定”按鈕,會在Default.aspx“源”視圖頂部生成如下的代碼。(3)切換到“源”視圖,在id為“main”的div內添加如下代碼。 /

13、 標記用來創建圓角矩形(4)在“源”視圖中,選中“fieldset”標記,打開“應用樣式”窗口,單擊“新建樣式”選項,在彈出的“新建樣式”對話框中設置“選擇器”為“級聯樣式”,選擇“定位”類別,設置其width為“100%”,height為“100%”,修改后的代碼如下:(5)切換到“設計”視圖,把光標定位到“fieldset”內,選擇“表”“插入表”菜單項,在彈出的“插入表格”對話框中設置“行數”為“1”,“列數”為“2”,“寬度和高度”為“100%”,單擊“確定”按鈕,在fieldset標記內插入一個1行2列的表格。(6)選中左邊列,打開“應用樣式”窗口,單擊“新建樣式”按鈕,在彈出的“新

14、建樣式”對話框中設置“選擇器”為“級聯樣式”。選擇“定位”類別,設置其width為“350 px”;選擇“邊框”類別,設置右邊框的border-style為“solid”;選擇“背景”類別,設置背景圖片為“主題”文件夾內image文件夾中準備好的圖片“system.gif”,background-repeat為“no-repeat”,x和y軸的background-position為“center”。以同樣的方法選中右邊列,設置其width為“350 px”,設置完畢后效果如圖5.10所示。圖5.10 左部效果圖(7)把光標定位到第二個td標記內,選擇“表”“插入表”菜單項,在彈出的“插入表格

15、”對話框中設置“行數”為“4”,“列數”為“2”,寬度為“100%”,單擊“確定”按鈕,在此列中插入一個4行2列的表格。(8)打開“應用樣式”窗口,單擊“新建樣式”按鈕,在彈出的“新建樣式”對話框中設置“選擇器”為“.right”,“定位位置”為“當前頁面”。選擇“定位”類別,設置width屬性為“150 px”,height屬性為“35 px”;選擇“塊”,設置text-align屬性為“right”。單擊“確定”按鈕,在“當前頁”內創建一個嵌入式的css樣式規則,代碼如下: .right width: 150px; height: 35px; text-align: right; (9)打

16、開“應用樣式”窗口,單擊“新建樣式”按鈕,在彈出的“新建樣式”對話框中設置“選擇器”為“.left”,“定位位置”為“當前頁面”。選擇“定位”類別,設置width屬性為“200 px”,height屬性為“35 px”;選擇“塊”類別,設置text-align屬性為“left”。單擊“確定”按鈕,在“當前頁”內創建一個嵌入式的css樣式規則,代碼如下:.left width: 200px; height: 35px; text-align: left;(10)選中右邊單元格內的表格的第一列,打開“應用樣式”窗口,選中“right”樣式,給第一列應用“right”樣式規則。選中右邊單元格內的表格

17、的第二列,打開“應用樣式”窗口,選中“left”樣式,給第二列應用“left”樣式規則。(11)如圖5.11所示,在表格內添加相應的文本和控件(標準選項卡內),并按照表5.3設置相應控件的屬性。控 件設 置第一行的文本框ID為“TextBoxUserName”,Width為“150 px”第二行的文本框ID為“TextBoxUserPassword”,Width為“150 px”,TextMode為“Password”第三行的下拉列表框ID為“DropDownListUserType”,Width為“150 px”,Items中添加4個成員,每個成員的Text和Value屬性分別為:“=選擇用

18、戶列別=”,“null”; “管理員”,“; “教師”,“; “學生”,“第四行的按鈕ID為“loginButton”,Text為“登錄”,Width為“80 px”;ID為“ButStuRegister”,Text為“學生注冊”,Width為“80 px”圖5.11 右部效果圖表5.3 控件屬性設置(12)右擊此頁面,選擇“在瀏覽器中查看”選項,瀏覽器中的效果如圖5.12所示。圖5.12 用戶登錄3編寫系統登錄代碼編寫系統登錄代碼(1)編寫所需的基礎類庫為了密碼管理的完全性,不能直接保存用戶的明文密碼,而應該把用戶的密碼通過MD5加密后保存到數據庫中。此學生成績管理系統的教師密碼由管理員提供

19、,所以這里不對教師密碼加密,而只對學生密碼進行加密。因為這個方法經常使用,所以把其放入一個類中,方便調用,其中還可以放置一些經常使用的方法。右擊App_Code文件夾,打開“添加新項”對話框,選擇“類”模板,修改名稱為“commTools.cs”,類內部的代碼如下。(2)編寫登錄驗證代碼當用戶在登錄框中填寫完用戶信息,單擊“登錄”按鈕后,系統會利用用戶的輸入信息在系統數據庫中進行查詢,判斷用戶是否在系統中存在,如果存在,繼續判斷用戶的密碼是否正確,并根據判斷的情況給用戶提示不同的信息。雙擊“登錄”按鈕,切換到Default.aspx.cs代碼頁,系統自動添加了loginButton_Click

20、方法,引入命名空間如下:using System.Collections.Generic;using System.Data.SqlClient;添加loginButton_Click方法中的代碼如下。(3)編寫用戶登錄檢測代碼當用戶登錄系統后,如果沒有退出,就可以在所允許的范圍內任意瀏覽頁面,無需重新登錄。這個功能主要利用Session會話對象中保存的登錄用戶的信息自動進行判斷,來確定用戶是否能夠訪問所訪問的頁面。當他們訪問一個頁面時,Page_load事件首先會被執行,因此可以在頁面的Page_load事件內從Session會話對象中取出用戶的登錄信息,利用Session中的用戶信息判斷用

21、戶是否有權限訪問所要訪問的頁面。如果有權限,則會在瀏覽器中顯示出用戶所請求的頁面,如果用戶沒有權限訪問,則會自動在后臺跳轉到用戶登錄頁面,讓用戶進行登錄,所訪問的頁面就無法顯示出來。此部分的代碼會被所有需要權限控制的頁面使用到,因此把這部分代碼封裝成一個方法,放在commTools類中,在需要安全訪問控制的頁面的Page_load()方法內調用此方法即可,這樣方便代碼的修改和升級。封裝在commTools類內的代碼如下:/ / 判斷用戶是否能夠訪問響應的頁面,如果不能訪問,則進行頁面跳轉/ / 所要判斷的頁面對象/ 指定能夠訪問的用戶類型public static void checkUser

22、(Page page,string userType) /從session中獲取當前登錄的用戶的信息 string currentUserType = (string)page.SessionuserType; Boolean userLogin = (Boolean)page.SessionuserLogin; /如果用戶還沒有登錄就訪問此頁面,或者非允許的用戶類型訪問此頁面就跳轉到登錄頁面 if (userLogin=false | (currentUserType != userType) page.Response.Redirect(/Default.aspx);(4)添加“學生注冊”

23、按鈕功能代碼當單擊“學生注冊”按鈕后鏈接到注冊頁面(StudentRegister.aspx)。雙擊“學生注冊”按鈕,在“ButStuRegister_Click”方法中添加如下代碼:Response.Redirect(/Students/StudentRegister.aspx);L1. Web控件概述控件概述ASP.NET中的控件被組織成兩個名稱空間,即System.Web.UI.HtmlControls和System.Web.UI.WebControls。System.Web.UI.HtmlControls名稱空間包含HTML服務器控件,該類服務器控件直接映射到HTML元素上;Syste

24、m.Web.UI.WebControls名稱空間包含Web服務器控件,Web服務器控件更豐富、抽象。網頁控件的層次結構如圖5.13所示。圖5.13 ASP.NET網頁控件的層次結構1. HTML服務器控件的層次結構服務器控件的層次結構HTML服務器控件是特殊的HTML元素,這些元素包含使其自身在服務器上可見并可編程的屬性。默認情況下,服務器無法使用Web窗體頁上的HTML元素,這些元素被視為傳遞給瀏覽器的不透明文本。但是,通過將HTML元素轉換為HTML服務器控件,可將其公開為可在服務器上編程的元素。Web窗體頁上的任意HTML元素都可以轉換為HTML服務器控件。轉換是一個只涉及幾個屬性的簡單

25、過程。作為最低要求,通過添加RUNAT=SERVER屬性,HTML元素即可轉換為控件。如果要在代碼中作為成員引用HTML服務器控件,還應當為控件分配ID屬性。圖5.14顯示了HTML服務器控件的層次結構。圖5.14 HTML 服務器控件的層次結構2. HTML服務器控件的基本語法服務器控件的基本語法定義 HTML 服務器控件的基本語法是:由于HTML服務器控件是由HTML標記所衍生出來的新功能,因此在所有的HTML服務器控件的語法中,最前端是HTML標記,不同的控件用不同的標志來標記;runat = Server 表示控件將會在服務器端執行;id用來設置控件的名稱,在同一程序中各控件的id均不

26、相同,id屬性允許以編程方式引用該控件。表5.4列舉了HTML標簽,以及它們所屬的類別。將普通HTML控件轉換為HTML服務器控件,只需簡單地添加runat=server屬性。另外,可能還需要添加id屬性,這樣可以通過編程方式訪問和控制控件。例如,下面是一個簡單的輸入控件:可以添加id和runat屬性,將它轉換為HTML服務器控件,如下:因為HTML控件只能運行在客戶端,而不是服務器端,所有往往在ASP.NET下運行現有的HTML頁時需進行這樣的轉換。轉換后的HTML控件具有服務器控件的特點:可以使用面向對象技術對其進行編程控制;提供了一組事件,可以為事件編寫事件處理程序;自動維護控件;允許自

27、定義屬性等。在表5.4所列出的控件中,有幾個共同的屬性會經常被使用,如Innerhtml、InnerText、Disabled、Visible、Value、Attributes及Style。下面分別進行介紹。(1)InnerHtml屬性:獲取或設置控件的開始標記和結束標記之間的內容,但不自動將特殊字符轉換為等效的HTML實體。下例說明如何使用InnerHtml屬性動態設置文本消息。protected void Page_Load(object sender, EventArgs e) Message.InnerHtml = Welcome! You accessed this page at:

28、 + DateTime.Now.ToString(); (2)InnerText屬性:獲取或設置控件的開始標記和結束標記之間的內容,并自動將特殊字符轉換為等效的HTML實體。(3)Value屬性:用來獲取各種輸入字段的值,包括HtmlSelect、HtmlInputText等。(4)Attributes屬性:服務器控件標記上表示的所有屬性名稱和值的集合,使用該屬性可以用編程方式訪問HTML服務器控件的所有特性。ASP.NET服務器控件提供統一的編程模型。例如,在HTML中,input標簽()可用于按鈕、單行文本域、復選框、隱藏域和密碼。而多行文本域,則必須使用標簽。使用ASP.NET服務器控件

29、時,每種不同的功能類型都將對應一種特定控件。例如,使用TextBox控件輸入文本,并通過屬性指定行數。1. Web服務器控件的層次結構服務器控件的層次結構所有呈現到瀏覽器的、具有可視化外觀的Web服務器控件,都從WebControl類派生。該類提供了所有ASP.NET服務器控件的通用屬性、方法和事件。其中包括常用屬性,如BorderColor、BorderStyle和BorderWidth,以及RenderBeginTag和RenderEndTag方法。WebControl類和其他一些ASP.NET服務器控件(如Literal、PlaceHolder、Repeater和XML)是從System

30、.Web.UI.Control派生,而System.Web.UI.Control又從System.Object派生。Control類提供了一些基本屬性,如ID、EnableViewState、Parent和Visible,以及一些基本方法,如Dispose、Focus和RenderControl,還包括一些生命周期事件,如Init、Load、PreRender和Unload。從Control類派生的WebControl類和控件,位于System.Web.UI.WebControls命名空間中。它們之間的關系如圖5.15所示。圖5.15 Web服務器控件的層次結構Web服務器控件繼承了WebCo

31、ntrol和System.Web.UI.Control類的所有屬性、事件和方法。表5.5列出了從Control或WebControl類繼承的Web服務器控件的常用屬性。2. Web服務器控件基本語法服務器控件基本語法ASP.NET 服務器控件的基本語法為:控件標簽總是以“asp:”開頭,這就是標記前綴。controlType是控件的類型或類,如Button、CheckBoxList、GridView等。可以利用 id 屬性,以編程方式引用控件實例。runat 屬性告知服務器,該控件在服務器端運行。可以在尖括號中聲明其他屬性。例如,為 TextBox 聲明 Text 和 Width 屬性,如下所

32、示:雖然ASP.NET允許標記的屬性值可以不加引號,但是鑒于 ASP.NET 服務器控件必須使用良構的XHTML語法,不建議讀者這樣做。需要明確的是,如上例所示,一般情況下,標簽是成對出現的,也就是由起始標簽和結束標簽構成。但若此標簽僅占一行,也可在標簽最后加一個“/”作為結束。所以,上面的TextBox也可以書寫為:另外,許多Web服務器控件可以在起始和結束標簽之間使用內部HTML。例如,在TextBox 控件中,可將Text屬性指定為內部 HTML,而不是將其設置在打開標簽的屬性中。所以,上面的控件又可以等價地寫為:Enter a book name.3. Web服務器控件使用詳解服務器控

33、件使用詳解(1)TextBox文本框控件TextBox文本框控件是用得最多的控件之一,該控件可以用來顯示數據或輸入數據。定義的格式如下:TextBox控件有一個重要的屬性:TextMode。該屬性包括3個選項: SingleLine:單行編輯框。 MultiLine:帶滾動條的多行文本框。 PassWord:密碼輸入框,所有輸入字符都用特殊字符(如“*”)來顯示。除此以外,TextBox控件還有一個常用的 TextChanged 事件,當文字改變時引發此事件,可以編寫事件處理代碼做出響應。下面的代碼演示如何響應 TextBox 控件中的更改,在標簽中顯示文本框控件的內容。protected v

34、oid TextBox1_TextChanged(object sender, EventArgs e) Label1.Text = Server.HtmlEncode(TextBox1.Text);默認情況下,TextChanged 事件并不馬上導致向服務器回發 Web 頁,而是當下次發送窗體時在服務器代碼中引發此事件。若要使 TextChanged 事件引發即時發送,需將 TextBox 控件的 AutoPostBack(自動回傳)屬性設置為 true。(2)Button、LinkButton和ImageButton按鈕控件網頁控件中的按鈕分為三種:Button、LinkButton和Im

35、ageButton。它們功能基本相同,但外觀上有區別。Button的外觀與傳統按鈕的外觀相同;LinkButton的外觀與超鏈接字符串相同;ImageButton按鈕用圖形方式顯示外觀,其圖像通過ImageURL屬性來設置。三種按鈕的功能都與HTML的提交按鈕(Submit Button)相似,即每當這些按鈕被單擊(Click)時,就將緩沖區中的事件信息一并提交給服務器。定義上述三種按鈕的語法如下:鏈接按鈕下面的代碼功能是用鼠標單擊LinkButton按鈕,該按鈕即可通過服務器轉向新的網頁,從而起到“超鏈接”的作用。在LinkButton按鈕的Click事件中寫出以下程序: private v

36、oid LinkButton1_Click(object sender, System.EventArgs e)Response.Redirect(其他窗體的URL);三種按鈕的共同屬性: PostBackUrl屬性:利用這個屬性可以將按鈕變成“返回”按鈕。即先將該屬性設成某個網頁的URL,以后單擊該按鈕時就會直接轉向該網頁。 OnClientClick屬性:定義當單擊按鈕時執行的客戶端腳本,通常是一個腳本函數的函數名。 CommandName屬性:當在網頁上具有多個按鈕控件時,可使用 CommandName 屬性來指定或確定與每一個按鈕控件關聯的命令名。可以用標識要執行的命令的任何字符串來設

37、置 CommandName 屬性。然后,以編程方式確定按鈕控件的命令名并執行相應的操作。三種按鈕的共同事件: Click事件:按鈕的OnClick屬性對應的值就是此事件添加的處理函數的函數名。處理函數將在服務器端執行,如果為某個按鈕控件同時指定了OnClientClick屬性和OnClick屬性,那么將優先響應客戶端的處理。 Command事件:當單擊按鈕控件時會引發 Command 事件。通常當命令名(如 Sort)與按鈕控件關聯時,才會使用該事件。這使得可以在一個網頁上創建多個按鈕控件,并以編程方式確定單擊了哪個按鈕控件。(3)CheckBox和CheckBoxList復選控件CheckB

38、ox 和 CheckBoxList復選控件為用戶提供了在真/假、是/否或開/關選項之間進行選擇的方法。CheckBox 是單個控件,可以單獨使用。而CheckBoxList 控件是復選框列表控件,可以將多個CheckBox組合在一起使用。使用單個 CheckBox 控件時,更容易控制頁面上的布局。例如,可以在各個復選框之間包含文本,也可以單獨控制復選框的字體和顏色。如果想用數據庫中的數據創建一系列復選框,則 CheckBoxList 控件是較好的選擇。使用CheckBoxList時要給控件增添選項。方法是先選擇該控件,然后找到控件的Items屬性,單擊右邊的省略號按鈕,將彈出如圖5.16所示的

39、對話框。利用“添加”按鈕,按照圖5.16中的選項得出的頁面部分如圖5.17所示。 圖5.16 編輯CheckBoxList的選項 圖5.17 CheckBoxList選項(4)RadioButton和RadioButtonList單選控件RadioButton和RadioButtonList單選控件的作用和使用方法與CheckBox基本相同,唯一的差別在于,在一個RadioButtonList內的多個RadioButton之間只能有一項被選中,而在CheckBoxList中可以同時選中多項。(5)ListBox控件ListBox 控件通常用于一次顯示一個以上的項。可以在以下兩方面控制列表的外觀

40、: 顯示的項數。可將該控件設置為顯示特定的項數。如果該控件包含比設置的項數更多的項,則顯示一個垂直滾動條。 高度和寬度。可以以像素為單位設置控件的大小。在這種情況下,控件將忽略已設置的行數,而是顯示足夠多的行直至填滿控件的高度。ListBox控件的主要屬性和事件如下: AutoPostBack屬性:若該屬性為True,則當更改選項內容后會自動回發到服務器;若為False,則不回發。 Rows屬性:表示可以顯示的選項行數。 Items屬性:是ListBox控件各選項的集合。通過該屬性可以獲取對當前存儲在ListBox中的項列表的引用,通過此引用,可以在集合中添加項、移除項和獲得項的計數。每個列表

41、項都是一個單獨的對象,具有自己的屬性,見表5.6。屬 性說 明Text列表中顯示的文本Value與某個項關聯的值。設置此屬性可將該值與特定的項關聯,而不顯示該值。例如,可以將 Text 屬性設置為某個職員的名字,將 Value 屬性設置為該職員的電子郵件別名Selected布爾值,指示該項是否被選定。如果 ListBox 被設置為允許多重選擇,則可選擇一項以上表5.6 ListBox控件中列表項的基本屬性 SelectionMode屬性:該屬性指明一次是否可多選。SelectionMode屬性可以有兩個取值:Single表明在ListBox中僅能選擇一項;Multiple表明可以選擇多項。如果

42、將 ListBox 控件設置為允許進行多重選擇,則可以在按住【Ctrl】或【Shift】鍵的同時,單擊選擇多個項。當用戶單擊列表選項時,ListBox 控件將引發SelectedIndexChanged 事件。默認情況下,此事件不會導致將頁發送到服務器,可以通過將 AutoPostBack 屬性設置為 true,使此控件強制立即回發。下面的代碼示例演示如何響應 ListBox 控件中的選擇。事件處理程序將用戶選擇的選項顯示在 Label 控件中。Protected void ListBox1_SelectedIndexChanged(object sender, System.EventArg

43、s e) Label1.Text = You selected + ListBox1.SelectedItem.Text;(6)DropDownList 控件DropDownList控件是一個用下拉框方式顯示選項的控件,它允許用戶從預定義下拉列表中進行單行選擇。該控件與ListBox控件的不同之處在于:它在框中顯示選定項,同時還顯示下拉按鈕。若用戶單擊此按鈕,將顯示項的列表;另外,DropDownList控件不支持多重選擇模式。DropDownList控件使用語法: 或 DropDownList控件的主要屬性和事件如下: AutoPostBack 屬性:若該屬性為 True,則當更改選項內容后

44、會自動回發到服務器;若為False,則不回發。 Items 屬性:Items 屬性是DropDownList 控件各選項的集合。每個列表項都是一個單獨的對象,具有自己的屬性,同 ListBox 控件。DropDownList 控件可用來列出從某個數據源讀取的選項。DropDownList 控件中的每一項分別對應數據源中的一項(通常是一行)。相關屬性和事件如下: DataSource 屬性:獲取或設置此 DropDownList 控件的數據源。 DataTextField 屬性:指明用于提供選項文本的數據源字段。 DataValueField 屬性:該屬性表示指定數據源的相關數據字段的值。 Se

45、lectedIndexChanged 事件:當用戶選擇一項時,DropDownList 控件將引發SelectedIndexChanged 事件。默認情況下,此事件不會導致向服務器發送頁面,但當將AutoPostBack 屬性設置為true時,此控件強制立即發送。(7)HyperLink超鏈接控件HyperLink控件提供了一種使用服務器代碼在Web頁上創建和操作鏈接的方法,使用戶可以在應用程序中的頁之間移動。HyperLink超鏈接控件有4個重要的屬性。 Text屬性:HyperLink 控件的文本標題。 ImageUrl 屬性:使用ImageUrl屬性指定為HyperLink控件顯示的圖像

46、。HyperLink控件可以顯示為文本或圖像,如果同時設置了 Text 和 ImageUrl 屬性,則 ImageUrl 屬性優先。如果圖像不可用,則顯示Text屬性中的文本。 NavigateUrl 屬性:使用NavigateUrl屬性指定單擊 HyperLink 控件時定位到的URL。 Target 屬性:使用Target屬性指定單擊 HyperLink 控件時顯示鏈接到哪個Web窗口或頁框架。使用 HyperLink 控件而不是傳統的 HTML 超鏈接標簽的好處是: 可以在服務器代碼中設置鏈接屬性。例如,可以基于頁面中的條件動態地更改鏈接文本或目標頁。 可以使用數據綁定來指定鏈接的目標

47、URL(以及必要時與鏈接一起傳遞的參數)。需要注意的一點,與大多數 Web 服務器控件不同的是,當用戶單擊 HyperLink 控件時并不會在服務器代碼中引發任何事件,此控件只用于導航。(8)Image與ImageMap圖像控件利用Image圖像控件可以在Web窗體頁上顯示圖像,并用自己的代碼來管理這些圖像。圖像源文件可以在設計時確定,也可以在程序運行中指定,還可以將控件的ImageURL屬性綁定到數據源上,根據數據源的信息來選擇圖像。與大多數其他Web服務器控件不同,Image控件不支持鼠標單擊(click)事件。如果需要使用鼠標單擊事件時,可以使用ImageButton控件來代替Image

48、控件。顯示一個圖像所需的最少操作是:先創建一個Image控件,然后指定一個圖像文件。具體步驟如下。進入“設計”視圖,在“工具箱”中展開“標準”選項卡,然后將一個Image控件拖放到網頁界面上。將控件的ImageURL屬性設置為.gif、.jpg或其他網絡圖形文件的URL。給Image控件設置以下屬性。 Height和Width:在頁面上為圖形保留適當空間(高度和寬度)。 ImageAlign:用來設置圖像對齊的方式。可使用的值包括Top、Bottom、Left、Middle和Right。 AlternateText:有的瀏覽器不支持加載圖像時,替代圖像的文本。ImageMap控件可以用來顯示圖

49、像,也可以實現圖像的超鏈接。該控件的最大特點是,可以將ImageMap中的圖像按照(X,Y)坐標劃分成不同形狀的區域,分別鏈接到不同的網頁。該控件的ImageUrl屬性用來連接圖像源文件;HotSpot屬性用來劃分鏈接區域。單擊HotSpot屬性右邊的省略號按鈕,彈出如圖5.18所示的對話框。圖5.18 編輯ImageMap控件的HotSpot(9)FileUpload 控件應用程序中經常需要允許用戶把文件上傳到Web服務器。盡管在ASP.NET 1.X也可以完成該功能,但在ASP.NET中使用FileUpload控件會更簡單。該控件讓用戶更容易地瀏覽和選擇用于上傳的文件,它包含一個瀏覽按鈕和

50、用于輸入文件名的文本框。只要用戶在文本框中輸入了完全限定的文件名,無論是直接輸入或通過瀏覽按鈕選擇,都可以通過調用FileUpload的SaveAs方法保存到磁盤上。用戶選擇要上傳的文件后,FileUpload 控件不會自動將該文件保存到服務器。必須顯式提供一個控件或機制,使用戶能提交指定的文件。例如,可以提供一個按鈕,用戶單擊它即可上傳文件。為保存指定文件所寫的代碼應調用 SaveAs 方法,該方法將文件內容保存到服務器上的指定路徑。通常,在引發回發到服務器的事件的事件處理方法中調用 SaveAs 方法。例如,如果提供一個用于提交文件的按鈕,則可以將執行文件保存操作的代碼放在單擊事件的事件處

51、理方法中。可以通過FileUpload的一些重要屬性訪問上傳的文件: FileName屬性:用來獲取客戶端上使用 FileUpload 控件上傳文件的名稱。此屬性返回的文件名不包含此文件在客戶端上的路徑。 FileBytes 屬性:該屬性從使用 FileUpload 控件指定的文件返回一個字節數組,包含了指定文件的內容。 FileContent 屬性:該屬性獲取 Stream 對象,該對象指向使用 FileUpload 控件上傳的文件。可以使用 FileContent 屬性來訪問文件的內容。例如,可以使用該屬性返回的 Stream 對象以字節方式讀取文件內容,并將它們存儲在一個字節數組中。 P

52、ostedFile 屬性:PostedFile 屬性獲取文件的基礎 HttpPostedFile 對象(該文件使用 FileUpload 控件上傳)。使用該屬性還可訪問上傳文件的其他屬性。例如,可以使用 ContentLength 屬性來獲取文件的長度,使用 ContentType 屬性來獲取文件的 MIME 內容類型。需要注意的是,防止攻擊者利用FileUpload控件發起拒絕服務攻擊的方法之一就是限制使用 FileUpload 控件上傳文件的大小。應當根據要上傳的文件的類型,設置與類型相適應的大小限制。默認大小限制為 4096 KB (4 MB)。可以通過設置web.config 配置文件

53、中httpRuntime 元素的 maxRequestLength 屬性設置允許上傳更大的文件。(10)Panel 控件Panel Web 服務器控件在 Web 窗體頁內提供了一種容器控件,可以將它用做靜態文本和其他控件的父級。此外,可將 Panel 控件用于其他目的: 對控件和標記進行分組。對于一組控件和相關的標記,可以通過把其放置在Panel控件中,然后操作此 Panel 控件,以將它們作為一個單元進行管理。例如,可以通過設置Panel的 Visible 屬性來隱藏或顯示該面板中的一組控件,而不必去設置面板中每一個控件的 Visible 屬性。 具有默認按鈕的窗體。可將 TextBox 控

54、件和 Button 控件放置在 Panel 控件中,然后通過將 Panel 控件的 DefaultButton 屬性設置為面板中某個按鈕的 ID,來定義一個默認的按鈕。如果用戶在面板內的文本框中進行輸入時按 Enter鍵,這將與單擊特定的默認按鈕具有相同的效果。 動態生成的控件的容器。Panel控件為在運行時創建的控件提供了一個方便的容器。Panel控件有以下常用屬性: HorizontalAlign:指定子控件在面板內的對齊方式(左對齊、右對齊、居中或兩端對齊)。 Direction:指定控件的內容是從左到右還是從右到左進行呈現。當在頁面上創建與整個頁面的方向不同的區域時,此屬性非常有用。

55、ScrollBars:可以通過設置此屬性來添加水平或垂直方向的滾動條。(11)Calendar控件Calendar服務器控件在ASP.NET網頁中顯示一個單月份日歷。用戶可使用該日歷查看和選擇日期。該控件基于.NET Framework DataTime對象,因此支持該對象所允許的全部日期范圍。用戶可有效地顯示從公元0年9999年之間的任意日期。使用該控件的一般語法形式如下:Calender控件的常用屬性如表5.7所示。屬 性 名說 明SelectedDate被選中的日期SelectionMode用戶被允許選擇日期的方式。可使用下列值之一:None(無)、Day(日)、DayWeek(日、星期

56、)、DayWeekMonth(日、星期、月)SelectionDayStyle被選中日的格式TadayDayStyle當天日期的樣式表5.7 Calender控件的常用屬性(12)MultiView與View控件View控件與MultiView控件作為控件或標記的容器,提供了一種很方便地切換信息視圖的方式。使用View控件與MultiView控件可以實現如下的任務。 根據用戶的選擇或其他條件提供不同的頁面。例如,可能允許用戶從一個列表中選擇,其中每個項都有獨立的View控件與之對應,然后可以顯示用戶選擇的View控件內的內容。 創建多頁窗體。View控件與MultiView控件可以提供與Wiz

57、ard控件類似的行為。例如,每個操作可能需要多個步驟才可以完成,不同的步驟所要顯示的界面不同,就可以在MultiView內放多個View,在不同的View內繪制不同的界面,通過用戶的操作步驟,依次顯示出對應的視圖。MultiView控件用做一個或多個View控件的外部容器,View控件可以包含標記和控件的任何集合。MultiView控件一次只能顯示一個View控件,并顯示此View控件內的標記和控件。通過重置MultiView控件的ActiveViewIndex屬性,可以指定當前可見的View控件。通過MultiView控件的ActiveViewIndex屬性可以設置要顯示的View控件,其中

58、第一個View為0,第二個為1,依次類推。MultiView控件還支持添加到每個View內部的導航控件。若要創建導航按鈕,可以向每個View控件添加一個按鈕控件,然后可以將每個按鈕的CommandName和CommandArgument屬性設置為空字符串,以使MultiView控件切換到另一個View。表5.8列出了CommandName值和相應的CommandArgument值的組合。CommandName值CommandArgument值NextView不需要設置PrivView不需要設置SwitchViewByID要切換到的View控件的IDSwitchViewByIndex要切換到的V

59、iew控件的索引號表5.8 不同的命令類型與命令參數1. 驗證控件的分類及作用驗證控件的分類及作用ASP.NET 提供了6 種驗證控件。各種驗證控件的作用如下: RequiredFieldValidator 控件:用于檢查用戶是否在輸入控件中輸入了數據。 CompareValidator 控件:將輸入控件的值與常數值或其他輸入控件的值相比較,以確定這兩個值是否與由比較運算符(小于、等于、大于)指定的關系相匹配。 RangeValidator 控件:用于檢查用戶的輸入是否在一個特定的范圍內。 RegularExpressionValidator 控件:用于檢查用戶的輸入是否與正則表達式所定義的模

60、式匹配。 CustomValidator 控件:通過用戶自定義的驗證函數判定輸入的數據是否有效。 ValidationSummary 控件:以列表的形式顯示頁面上所有驗證控件所搜索到的驗證錯誤。其中ValidationSummary 控件只能與前5種驗證控件一起使用,不能單獨執行驗證。另外在這些控件中,除RequiredFieldValidator控件以外,其他所有的控件都認為空字段是合法的。2. 使用驗證控件使用驗證控件各個控件雖然作用不同,但使用的方法卻有很多共同點。除了ValidationSummary 控件外,其他的驗證控件都繼承于共同的基類BaseValidator,每個控件都有一個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論