使用 ASP+ 列表繫結控制項(上)

來源:互聯網
上載者:User
asp+|控制項 簡介
  
    Repeater、DataList和DataGrid控制項構成ASP+頁面架構中System.Web.
  UI.WebControls名稱空間內的相關Web控制項集。這些控制項使HTML顯示所綁
  定列表或資料來源的內容。因此,將它們統稱為“列表繫結控制項”。
  
  與架構中的其它 Web
  
    控制項類似,這些控制項提供一致的編程模型並封裝一個獨立於瀏覽器的
  表示邏輯。這些特性使開發人員能夠針對物件模型編程而不用必須掌握與
  HTML 相關的那些不一致的和複雜的技術知識。
  
    這三種控制項可以按多種布局(包括列表、分欄/報紙欄目和流布局
  (HTML流))來表示與其相關的資料來源內容。此外,它們還允許您建立完
  全不同的或完全定製的布局。除了封裝有表示邏輯外,還提供了用來處理
  已發送資料、執行狀態管理和引發事件的功能。最後,它們還對諸如選擇、
  編輯、分頁和排序之類的標準操作提供不同層級的支援。這些控制項可以簡
  化幾種常見的 Web 應用程式方案,包括報表、購物車、產品列表、查詢
  結果和導覽功能表。
  
    下面幾節將進一步說明這些控制項和如何在您的 Web 應用程式中使用
  它們,以及如何選用控制項。
  
  列表繫結控制項是如何工作的?
  
    本節是本文其餘部分的背景材料。概述了這些列表繫結控制項的工作方
  式、它們的共同特性以及某些相關概念。
  
  DataSource 屬性
    每個控制項都有一個DataSource屬性,其類型為System.Collections.
  ICollection。用最簡單的話來說,資料來源是同類對象的一個列表或集合。
  
    此架構中有幾個對象提供了 ICollection 的實現。這個集合包括
  System.Data.DataView(它通常用來訪問關聯式資料庫和 XML 資料)、一
  般ICollection實現(如ArrayList和Hashtable)以及數組。
  
    與傳統的資料繫結控制項(它們通常需要ADO記錄集)不同,除了實現
  ICollection介面之外,這些列表繫結控制項未對其資料來源強加任何其它要
  求。根據設計,通過大量增加可作為有效DataSource屬性值的類型和資料
  結構,它們能夠為您的應用程式代碼實現最大程度的簡單和靈活性。
  
  項目集合
  
    每個列表繫結控制項都包含一個項目集合。控制項通過列舉這些對象當前
  的資料來源來置入其項目集合。在列舉中為每個對象建立單個項目並用於表
  示該對象。這些項目同時成為列表繫結控制項中包含的控制項階層的一部
  分。
  
  下表列出了與資料來源的資料相關聯的項目類型。
  
  項目 建立的預設項目類型
  AlternatingItem 為項目集合中具有奇數下標的項目建立
  SelectedItem 為選定的項目建立(不論該項目是否為備選項目)
  EditItem 為處於編輯模式下的項目建立(不管它是否被選中或是否為備選項目)
  
  
    控制項同時建立將在表示中用到的下列項目。但是,它們並不與資料來源
  的資料相關聯。
  
  標題 用來表示標題資訊
  註腳 用來表示註腳資訊
  分隔字元 用來表示圖 1 中所示的每個項目之間的內容,並且僅適用於 Repeater 和 DataList
  分頁符 用來表示與 DataGrid 控制項相關聯的分頁 UI
  
      
  
  項目的資料繫結和建立
  
    列表繫結控制項遵循在整個 ASP+ 架構中實現的顯式資料繫結模型。這
  意味著控制項僅當其 DataBind 方法被調用時才需要並列舉其資料來源。
  
  當調用 DataBind
  
    方法時,清單控制項將列舉其資料來源、建立項目並通過從其資料來源中提
  取值來對其進行初始化。如果啟用了狀態管理,則控制項還將儲存所需的全
  部資訊,以便在頁面的回傳處理期間重新建立其項目而無須重新設定資料
  源。
  
    顯式資料繫結模型使您的應用程式代碼可以精確地確定在處理序列中
  何時及何處需要資料來源。這種功能使對資料庫伺服器的訪問更少且更高效,
  而這些訪問通常是 Web 應用程式最耗費資源的操作。
  
    一般規則是每當您需要重新建立項目時都必須調用DataBind。在大多
  數情況下,您將在您的頁面首次被請求建立初始項目集合時調用DataBind。
  在該頁面的後續執行過程中,您將需要在引起項目集合被更改的各種事件
  處理常式中調用此方法。當用於建立初始資料來源的查詢被修改時,就可能
  發生這種情況。當項目的狀態改變(如從唯讀模式變為編輯模式)時也可
  能發生這種情況。
  
  樣式
  
    通過在物件模型上使用樣式屬性,您可以定義全部DataList和DataGrid
  控制項及其所包含項目的格式和外觀。這些屬性允許定製字型、顏色、邊框
  和其它外觀因素。控制項本身的樣式屬性(如前景色彩、背景色、字型和邊框
  樣式)將影響整個控制項的表示。
  
    此外,每個控制項都包含與其所建立的項目類型相匹配的大量樣式屬性,
  如as ItemStyle、AlternatingItemStyle和headerStyle。DataGrid提供
  第三級的樣式屬性,這些屬性將影響特定列的所有儲存格。控制項中包含的
  每一列都可以擁有其自己的 headerStyle、FooterStyle 和 ItemStyle。
  
  模板
  
    樣式控制格式顯示,而模板則定義每個項目的內容和表示。您可以將
  模板看作HTML代碼片斷,它定義了用來表示項目的控制項階層。
  
    Repeater 和 DataList 控制項由您指定的模板來驅動,提供各種可設
  置的模板屬性,如ItemTemplate、AlternatingItemTemplate和header
  Template。與樣式類似,每個模板都對應於一個特定類型的項目。
  
    DataGrid 控制項未模板化。但是,控制項的 Column 集合中的 Template
  Columns使DataGrid中模板的使用成為可能。TemplateColumn中的每個單
  元格都可以包含一個模板,這與 Repeater 或 DataList 控制項中的項目極
  為類似。這也使 DataGrid 中的定製表示成為可能。
  
  模板中的資料繫結
  
    模板定義項目中包含的控制項階層。通過使用資料繫結運算式,此
  階層中的控制項屬性可綁定到與此項目相關聯的資料屬性上。
  
    作為模板的邏輯父級的項目在資料繫結運算式中被稱為“容器”。每
  個容器都有一個稱為DataItem的屬性,該屬性引用其相關聯的資料。結果
  是,模板中的大多數典型資料繫結運算式都將控制項屬性綁定到 Container.
  DataItem的某個屬性上。將在以下幾節介紹的樣本中進一步說明這種綁定。
  
  重複器控制項
  
    如前面所述,Repeater控制項是完全由模板驅動的,允許建立完全可定
  制的表示和布局。下圖說明了這一功能。
  
  
  
  摘自 Repeater1.aspx:
  
  〈%@ Page language="C#" s



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.