二、ASP.NET 伺服器控制項
可以添加到 ASP.NET 頁面上的控制項有三種類型:
● HTML 伺服器控制項:也就是 HTML 標籤,位於 System.Web.UI.HtmlControls 命名空間。
● Web 伺服器控制項:提供統一的編程模型、包含方法以及現關的時間處理常式,並且代碼都在伺服器端執行。位於 System.Web.UI.WebControls 命名空間中。
● 定製控制項和使用者控制項:由開發人員定製的控制項。
我們添加的所有伺服器控制項都會自動成為物件模型的一部分,該物件模型是在這段後置代碼中為表單構建的。基本上,Web Form上控制項的狀態資訊(包括文字框中的輸入資料、下拉式清單中的選項等)儲存在隱藏的 viewstate 欄位中,這個欄位是伺服器產生頁面的一部分,並傳送給使用者。在複雜的表單上,會產生很多的 viewstate 值,可以禁用不需保留狀態資訊的控制項 Viewstate,也可以禁用整個頁面的 Viewstate,有助於提高效能。
修改過的 .aspx.cs 檔案可以不用再次手工編譯,就可以顯示其改變的資訊(?)。
一、Crystal Reports(Crystal 報表伺服器控制項)
可以在 Web 頁面上顯示 Crystal 報表資訊。
二、Standard(標準 Web 伺服器控制項)
Label:顯示簡單文本,使用 Text 屬性設定和編程修改顯示的文本。
TextBox:提供一個使用者可以編輯的文字框,支援 AutoPostBack 屬性在修改常值內容後自動回送;支援 TextChanged 事件。
Button:使用者單擊的標準按鈕。支援 Click 事件;支援 Command 事件訪問接收的附加屬性 CommandName 和 CommandArgument。
LinkButton:與 Button 相同,但把按鈕顯示為超連結。
ImageButton:顯示一個映像,其屬性和事件繼承了 Button 和 Image。
HyperLink:添加一個 HTML 超連結,NavigateUrl 屬性設定超連結;ImageUrl 屬性指定替換文本的圖片;Target 屬性指定開啟視窗方式。
DropDownList:允許使用者選擇一個清單項目,使用屬性 Items 設定清單項目(一個 ListItem 集合);SelectedItem 和 SelectedIndex 屬性確定選擇的內容;支援 SelectedIndexChanged 事件可以用於確定選項是否改變;支援 AutoPostBack 屬性。
ListBox:允許使用者選擇一個或多個列表。把 SelectionMode 設定為 Muliple 或 Single 可以確定一次選擇多少選項;Rows 確定要顯示選項個數;其他選項與 DropDownList 控制項相同。
CheckBox:顯示一個複選框,選擇的狀態在 Checkted 屬性中;文本在 Text 屬性;支援 AutoPostBack 屬性;支援 CheckedChanged 事件。
CheckBoxList:建立一組複選框,屬性和事件可參照 DropDownList。
RadioButton:顯示一個選項按鈕,使用 GroupName 屬性可以把 RadioButton 控制項連結到一個組中,其他屬性與事件與 CheckBox 相同。
RadioButtonList:建立一組選項按鈕,其屬性與事件類別同於其他清單控制項。
Image:顯示一個映像。使用 ImageUrl 進行映像索引,如果映像載入失敗則顯示 AlternateText 對應的文本。
ImageMap:類似於 Image,但支援 HotSpot 控制項提供的熱區功能重新導向到不同的頁面。
Table:指定一個表,可設定 TableRow 和 TableCell,或者 TableRow 的集合類屬性指定資料行。
BulletedList:把一個選項列表格式化為一個項目符號清單,可以有不同的顯示格式,支援 Click 事件確定使用者回送的選項;<ol>...</ul>,<ul>...</ul>。
HiddenField:用於提供隱藏的欄位,以儲存不同的值。這個控制項可儲存需要另一種儲存機制才能發揮作用的設定。使用 Value 屬性訪問儲存的值。
Literal:執行與 Label 相同的功能,但沒有樣式屬性,只有一個 Text 屬性。
Calendar:允許使用者從映像日曆中選擇一個日期。準系統是 SelectedDate 和 VisibleDate 屬性。
AdRotator:廣告流轉板,順序顯示幾個映像,使用 AdvertisementFile 屬性指定描述映像的 XML 檔案;支援 AdCreated 事件。
FileUpload:提供使用者選擇並上傳檔案,支援 HasFile 屬性,支援後台代碼的 SaveAs() 方法執行檔案上傳。
Wizard:使用者簡化使用者在幾個頁面中輸入資料的常見任務,可以給嚮導添加多個步驟,按順序或不按順序顯示,並依賴此控制項來維護狀態。
Xml:複雜的文本顯示控制項,用於顯示用 XSLT 樣式傳輸的 XML 內容。
MultiView:包含一個或多個 View 控制項,每次只顯示一個 View 控制項。可用 ActiveViewIndex 屬性指定當前;如果視圖改變會觸發 ActiveViewChanged 事件。
Panel:添加其他控制項的容器。可以使用 HorizontalAlign 和 Wiap 指定內容如何安排。
View:控制項的容器,類似於 PlaceHolder,但主要作用於 MulitView 的子控制項,支援 Activate 和 Deactivate 事件檢測啟用狀態的變化。
Substitution:指定一組不與其他輸出一起快取的 Web 頁面。
Location:與 Literal 相同,但允許使用項目資源指定要在不同地區顯示的文本,使文本本地化。
三、Data(資料 Web 伺服器控制項)
資料 Web 伺服器控制項分為兩類:
● 資料來源控制項:實現從不同資料來源擷取資料的功能,最好通過圖形化的嚮導來配置屬性。分為兩類:
System.Web.UI.DataSource(普通資料來源控制項)
ObjectDataSource:可以處理儲存在自己建立的對象中的資料,能在 ASP.NET 中快捷顯示定製的物件模型。
SqlDataSource:使用和操作 SQL Server 資料庫中儲存的資料管道,返回的對象是 DataSet。
AccessDataSource:使用和操作 Access 資料庫中儲存的資料管道。
System.Web.UI.HierarchicalDataSource(層次化資料來源控制項)
XmlDataSource:處理階層化的資料,可以綁定導航控制項,還可以使用 XSL 樣式表傳輸 XML 資料。
SiteMapDataSource:可以綁定到層次網站地圖資料上。
● 資料顯示控制項
GridView:以資料行的格式顯示多個資料項目(例如資料庫中的行),利用這個控制項的屬性,可以選擇、排序和編輯資料項目。
DataList:顯示多個資料項目,可以為每一項提供模板,以任意指定的方式顯示資料欄位,可以選擇、排序和編輯資料項目。
DetailsView:顯示單條資料項目的詳細欄位,可以添加、編輯和刪除資料項目。
FormView:使用模板顯示一個資料項目,可以添加、編輯和刪除資料項目。
Repeater:類似於 DataList,但是不能選擇和編輯資料。
RepeaterViewer:顯示報表格服務資料的進階控制項。
四、Validation(驗證 Web 伺服器控制項)
驗證控制項可以在不編寫代碼的前提下驗證使用者輸入,還可以自動給使用者輸出有協助的提示,甚至還可以產生用戶端的 JavaScript 函數來簡化驗證任務的執行。
驗證控制項只要有回送,每個驗證控制項就會檢查控制項是否有效,並相應地改變 IsValid 屬性的值。如果頁面中任何一個有效性驗證控制項不通過驗證,那整個頁面的 IsValid 屬性為 false。另外,儲存在 ErrorMessage 中的文本可以在驗證控制項所在位置輸出(Display 屬性),也可以和其他頁面上的驗證控制項一起輸出在一個獨立的位置(使用 ValidationSummary 控制項)。ControlToValidate 屬性用於指定要驗證的控制項的編程ID。
RequiredFieldValidator:對輸入控制項的非空驗證。
CompareValidator:檢查輸入的資料是否滿足簡單的要求。利用一個運算集合,通過 Operator 和 ValueToCompare 屬性進行驗證。Operator 設定比較子 >、<、= ; ValueToCompare 用於比較的值;還有 Type 用於設定比較的類型;最後還是對另一控制項進行比較 ControlToCompare 屬性。
RangeValidator:驗證輸入資料 MaximumValue 和 MinimumValue 間的範圍,Type 指定其驗證的資料類型。
RegularExpressionValidator:根據儲存在 ValidationExpression 中的Regex驗證欄位的內容。
CustomValidator:使用定製函數驗證控制項的資料,自訂驗證。ClientValidationFunction 使用者佈建用戶端驗證的指令碼函數;ServerValidate 事件指定伺服器驗證資料的方法。
ValidationSummary:為所有設定了 ErrorMessage 的驗證控制項顯示驗證錯誤。通過 DisplayMode 和 HeaderText 屬性使其顯示的內容可以格式化;ShowSummary 屬性設定是否顯示;ShowMessageBox 屬性設定是否彈出對話方塊顯示資訊。
五、Navigation (導航 Web 伺服器控制項)
SiteMapPath:顯示路徑樣式的資訊,允許使用者產看他們在網站結構中的位置,並導航到父地區中。
Menu:支援靜態或動態樣式的菜單導航網站。
TreeView:可以在樹形結構中顯示層次化資料。樹中的節點儲存在 Nodes 屬性中,選中的節點儲存在 SelectedNode 中,支援 SelectedNodeChanged 和 TreeNodeCollapsed 事件。
根目錄下的網站地圖 Web.sitemap XML 檔案包含一個<siteMap>元素,這個跟元素包含一個<siteMapNode>元素,<siteMapNode>元素可以包含多個嵌套的<siteMapNode>元素。每個跟元素都包含下列屬性 title、url、roles、description 屬性。
添加控制項時將使用預設的提供者和當前的 URL 位置,格式化父頁面的連結清單。如果使用定製的提供者,可以通過 SiteMapProvider 屬性指定提供者ID,還可以使用 StartingNodeOffset 刪除菜單資料的上一層(例如根級的 Home 項);“資料來源控制項”的 ShowStartingNode 屬性選定是否刪除頂級連結;使用 StartFromCurrentNode 屬性指定是否從當前位置開始;使用 StringNodeUrl 會重寫根節點。
地圖
預設提供者會忽略 roles 屬性,這種定製將在 Web.config 檔案的 securityTrimmingEnable 屬性設定為目前使用者允許查看的節點提供資料,這種可見度是由使用者的角色成員決定的。