在ASP.Net中建立動態表格

來源:互聯網
上載者:User
asp.net|建立|動態

    摘要: DataGrid 控制項是與 ASP.net Page Framework 一起發行的資料繫結的伺服器控制項。本文使用 DataGrid 來建立包含動態表格視圖的 Web 頁面。還探討控制項所提供功能的各個方面,包括選擇、刪除、分頁和模板列 ,而控制項就是使用這些功能來建立最終的頁面的。
  
    簡介
  
    DataGrid 控制項可以用於若干個唯讀資料。該控制項可用於資料表格版面配置的輸出進行簡化。還提供多個機制,用於通過超級連結及其對選擇、排序、分頁和原地編輯和其它特性的支援,為輸出添加互動性。這使得該控制項在若干的常見 Web 應用程式方案中很有用,諸如列表、購物車和查詢結果。
  
    DataGrid 還提供一些功能,這些功能具有 ASP.NET 架構所特有的所有伺服器控制項的特點。該控制項包含進行與瀏覽器無關的輸出所需的邏輯,同時提供了一個統一的編程模型,從而能夠處理回傳資料,以及對請求之間的狀態進行管理。這樣,開發人員就可以針對帶有屬性、方法和事件的物件模型進行編程,而不必處理直接用 HTML編程所帶來的不一致性和複雜性。
  
    我們要建立什麼?
  
    本文舉出了一系列的樣本頁面,彼此結合,從而最終產生一個頁面,該頁面以樣本資料庫的 Authors 表和 Titles 表為依據,提供主/詳細資料視圖(該資料庫隨 Microsoft SQL Server?2000 一起發運)。序列中的每個頁面均介紹 DataGrid 控制項的一個新的特性或功能。下圖從 pubs 資料庫抽取出來的。
  主/詳細資料視圖似於 Microsoft Access 所介紹的表單/子表單概念。也類似於隨 Microsoft Visual InterDev 6.0 一起發表的 DataForm Wizard (資料表單嚮導)。主/詳細資料視圖顯示一到多的關係結果,其中視圖的一個部分顯示第一個查詢或主查詢的結果。然後跟蹤一個選擇,以篩選所使用的第二個查詢的結果,從而在視圖的另一部分顯示選擇內容的詳細資料。
  
  
  
  圖 1. 完成的頁面
    
    圖 1 將 Author 列表顯示在頁面的上半部分,並將關於所選作者的詳細資料(包括相關書名)顯示在下半部分。 Authors 列表和 Titles 均是用 DataGrid 控制項加以表示的。 顯示作者的 DataGrid 舉例說明如何進行選擇、排序、和分頁。顯示書名的 DataGrid 示範如何進行原地編輯、格式化和定製列。
  
    資料訪問
  
    為了使樣本自成一體,從 SQL Server 抽取資料並將該資料連同其架構資訊一同保留為一個 XML 檔案 TitlesDB.XML。下面是該檔案的一個片斷。
  
  <root>
  <schema id="DocumentElement" targetNamespace=""
  xmlns="http://www.w3.org/1999/XMLSchema"
  xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <element name="Author">
  <complexType content="elementOnly">
  <element name="au_id" type="string" minOccurs="1"
  maxOccurs="1"></element>
  <element name="au_name" type="string" minOccurs="1"
  maxOccurs="1"></element>
  <element name="address" type="string" minOccurs="0"
  maxOccurs="1"></element>
  <element name="city" type="string" minOccurs="0"
  maxOccurs="1"></element>
  <element name="state" type="string" minOccurs="0"
  maxOccurs="1"></element>
  <element name="zip" type="string" minOccurs="0"
  maxOccurs="1"></element>
  <element name="phone" type="string" minOccurs="0"
  maxOccurs="1"></element>
  </complexType>
  <unique name="AuthorConstraint" msdata:PrimaryKey="True">
  <selector>.</selector>
  <field>au_id</field>
  </unique>
  </element>
  
  <element name="Title">
  <complexType content="elementOnly">
  <element name="title_id" type="string" minOccurs="1"
  maxOccurs="1"></element>
  <element name="au_id" type="string" minOccurs="1"
  maxOccurs="1"></element>
  <element name="title" type="string" minOccurs="1"
  maxOccurs="1"></element>
  <element name="price" msdata:DataType="System.Currency"
  type="string"
  minOccurs="1" maxOccurs="1"></element>
  <element name="pubdate" type="timeInstant" minOccurs="1"
  maxOccurs="1"></element>
  </complexType>
  <unique name="TitleConstraint" msdata:PrimaryKey="True">
  <selector>.</selector>
  <field>title_id</field>
  </unique>
  <key name="AuthorTitle">
  <selector>../Author</selector>
  <field>au_id</field>
  </key>
  <keyref refer="AuthorTitle">
  <selector>.</selector>
  <field>au_id</field>
  </keyref>
  </element>
  </schema>
  <DocumentElement>
  <Author>
  <au_id>154-00-1300</au_id>
  <au_name>John Doe</au_name>
  <phone>425 705 1234</phone>
  <address>One Microsoft Way</address>
  <city>Redmond</city>
  <state>CA</state>
  <zip>98005</zip>
  </Author>
  <Title>
  <title_id>BU1032</title_id>
  <au_id>213-46-8915</au_id>
  <title>The Busy Executive's Database Guide</title>
  <price>19.99</price>
  <pubdate>1991-06-12T07:00:00</pubdate>
  </Title>
  </DocumentElement>
  </root> 
   這些範例簡化了資料訪問,從而將重點全部放在 DataGrid 的使用上。上面的 XML 被載入進一個 DataSet。 DataSet 為資料提供快取,從而可以進行篩選、排序和編輯等等各種操作。下面的代碼來自 Global.asax,用於載入 DataSet 和將其儲存為 Session 狀態。 
   
   public void Session_OnStart() {
  // 將範例中所用的資料載入會話範圍的 DataSet.
  
  FileStream fs = null;
  DataSet ds = null;
  try {
  fs = new FileStream(Server.MapPath("Data\\TitlesDB.xml"),
  FileMode.Open, FileAccess.Read);
  ds = new DataSet();
  ds.ReadXml(fs);
  } finally {
  if (fs != null) {
  fs.Close();
  fs = null;
  }
  }
  Session["AppData"] = ds;
  } 

[1] [2] [3] [4] [5] [6] 下一頁  



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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