熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

使用ASP.NET控件進行程序設計

2013-11-13 10:11:43  來源: .NET編程 

  ASPNET 控件時ASPNET架構的基本組成部分從本質上講ASPNET是NETFramework中的類可以在ASPNET頁面上映射控件聲明然後那些類根據他們的屬性為控件創建HTML由於類的對象是在運行時間與頁面一起被編譯的因此開發人員可以按照面向對象的方式訪問那些對象例如讀取和更改他們的屬性調用他們的方法和處理服務器端的事件等在傳統ASP程序設計中服務端的VBScript代碼和HTML標記是混和在一起的容易引起混淆而在ASPNET程序設計中由於能夠以面向對象的方式訪問對象因此可以創建結構更好可讀性更強的代碼
  
   ASPNET中的服務器控件
  
  ASPNET提供了許多不同的服務器控件他們可以分為以下幾類
  <> HTML Server Controls(HTML 服務器控件)
  
  這些控件是包含標准HTML標記的 類它由runat=server屬性進行聲明
  
  除了runat=server屬性之外控件的其他聲明 不變但是通過代表控件的對象可以在代碼中訪問讀取更改控件的屬性例如 支持runat=server屬性的個標記是<a><select>和<input>
  
  <> ASPNET Web Form Controls:
  這是另一組復制基本HTML標記(例如<input><a><select> 和<button>等)的功能的控件但是這組控件中的屬性和方法是一致的並且屬性和方法的名字有一定的意義因此開發人員就可以比較容易地聲明和訪問他們HyperLink ListBox和Button等都是這類控件
  
  <> ASPNET list Controls(ASPNET 列表控件)
  
  這組控件具有一致的命名規則並且擴展了基本Web Form Control的屬性它們可以與數據源進行綁定(例如數據庫XML文件和數組等)並且能夠以各種各樣的方式(例如列表表格網格等)顯示數據
  
  <> ASPNET Templated Controls (ASPNET模板控件) 這組控件為數據源中的每一個數據項而重復模板他們允許您使用不同的模板去顯示記錄編輯記錄和強調重要的記錄並且還能夠對分頁的支持
  
  <> ASPNET Rich Controls :通過設置這類控件的一些屬性 可以讓這類高級控件生成HTML和JavaScript代碼這類控件的傑出代表就是Calendar控件本章的內容中將對這類控件進行詳細討論
  
  <> ASPNET Validation Controls通過頁面上聲明這類控件可以很容易地根據一定的標准或用戶定義的規則(例如輸入不能為空輸入必須是數字輸入的數字必須大於某個值等)對相關的輸入進行驗證
  
   通過編程的方式創建服務器控件
  
  使用ASPNET 可以創建HTML服務器控件的實例使用面向對象的方法設置控件的屬性並把控件添加到頁面的Controls集合中這樣所有的工作都完成了
  
  例如下面的代碼(HTMLServTestaspx中的代碼) 是新ASPX頁面的全部 內容
  
  沒有控件的聲明只有服務器端的Page_Load程序這個程序動態地創建一個列的表並設置表的顏色和文本然後在頁面上把表顯示出來
  <script runat=server language=C#>
  void Page_Load()
  {
  //create a new HTMLTable object
  HtmlTable table = new HtmlTable();
  HtmlTableRow row;
  HtmlTableCell cell;
  
  //set the tables styles
  tableBorder =;
  tableCellPadding =;
  tableCellSpacing =;
  tableBorderColor =red;
  for(int i=; i<=; i++)
  {
  //create a new row and set its background color
  row = new HtmlTableRow();
  rowBgColor =(i%== ?lightyellow : lightcyan);
  
  for(int j=; j<=; j++)
  {
  //create a cell and set its text
  cell = new HtmlTableCell();
  cellInnerHtml =Row : + iToString()+
  <br>Cell:+jToString();
  
  //add the cell to the current row
  rowCellsAdd(cell);
  }
  
  //add the row to the table
  tableRowsAdd(row);
  }
  
  //add the table to page
  PageControlsAdd(table);
  
  }
  </script>
  上面的代碼中有兩個嵌套的循環外層的循環創建行然後進入內層的循環內層的循環創建數據單元並把數據單元添加到行的Cells集合中當一次內層的循環結束時帶有數據單元的行就被添加到表的Rows集合中最後一步是把表添加到頁面的Controls集合中
  
  從創建的這個表中可以看到有多少個子控件(數據單元和行)被添加給父母的集合(Rows和Controls)這個機制同樣適應於處理其他的服務器控件
From:http://tw.wingwit.com/Article/program/net/201311/12857.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.