使用ASP.NET控制項進行程式設計

來源:互聯網
上載者:User
asp.net|程式|控制項|設計        ASP.NET 控制項時ASP.NET架構的基本組成部分。從本質上講,ASP.NET是.NET 
  Framework中的類,可以在ASP.NET頁面上映射控制項聲明。然後,那些類根據他們的
  屬性,為控制項建立HTML。由於類的對象是在已耗用時間與頁面一起被編譯的,因此開
  發人員可以按照物件導向的方式訪問那些對象,例如讀取和更改他們的屬性、調用他
  們的方法和處理伺服器端的事件等。在傳統ASP程式設計中,服務端的VBScript代碼
  和HTML標記是混和在一起的,容易引起混淆。而在ASP.NET程式設計中,由於能夠
  以物件導向的方式訪問對象,因此可以建立結構更好、可讀性更強的代碼。
    
   1、  ASP.NET中的伺服器控制項
     ASP.NET提供了許多不同的伺服器控制項,他們可以分為以下幾類:
     <1> HTML Server Controls(HTML 伺服器控制項):
     這些控制項是包含標準HTML標記的  類,它由runat="server"屬性進行聲明。
     除了runat="server"屬性之外,控制項的其他聲明  不變,但是通過代表控制項的對象,
     可以在代碼中訪問、讀取、更改控制項的屬性。例如, 支援runat="server"屬性的
     3個標記是<a>、<select>和<input>。
    
    <2> ASP.NET Web Form Controls:  
    這是另一組複製基本HTML標記(例如<input>、<a>、<select> 和<button>等)的功能的控制項,
    但是這組控制項中的屬性和方法是一致的,並且屬性和方法的名字有一定的意義,因此,
    開發人員就可以比較容易地聲明和訪問他們。HyperLink、 ListBox和Button等都是這類控制項。
    
    <3> ASP.NET list Controls(ASP.NET 清單控制項):
      這組控制項具有一致的命名規則,並且擴充了基本Web Form Control的屬性。它們可以與
    資料來源進行綁定(例如資料庫、XML檔案和數組等),並且能夠以各種各樣的方式(例如
    列表、表格、網格等)顯示資料。
    
    <4> ASP.NET Templated Controls (ASP.NET模板控制項): 這組控制項為資料來源中的每一個
    資料項目而重複模板。他們允許您使用不同的模板去顯示記錄、編輯記錄和強調重要
    的記錄,並且還能夠對分頁的支援。
    
    <5> ASP.NET Rich Controls :   
      通過設定這類控制項的一些屬性, 可以讓這類進階控制項產生HTML和JavaScript代碼。
    這類控制項的傑出代表就是Calendar控制項,本章的內容中將對這類控制項進行詳細討論。
    
    <6> ASP.NET Validation Controls 
      通過頁面上聲明這類控制項,可以很容易地根據一定的標準或使用者定義的規則(例如輸入
      不可為空、輸入必須是數字、輸入的數字必須大於某個值等)對相關的輸入進行驗證。
 2 、通過編程的方式建立伺服器控制項
     使用ASP.NET , 可以建立HTML伺服器控制項的執行個體、使用物件導向的方法設定控制項
     的屬性,並把控制項添加到頁面的Controls集合中,這樣,所有的工作都完成了。
     例如,下面的代碼(HTMLServTest2.aspx中的代碼) 是新ASPX頁面的全部 內容:
     沒有控制項的聲明,只有伺服器端的Page_Load程式,這個程式動態地建立一個5行
     4列的表,並設定表的顏色和文本,然後在頁面上把表顯示出來:
       <script runat="server" language="C#">
 void Page_Load()
 {
  //create a new HTMLTable object 
  HtmlTable table1 = new HtmlTable();
  HtmlTableRow  row;
  HtmlTableCell  cell;
  
  //set the table’s styles
  table1.Border =1;
  table1.CellPadding =3;
  table1.CellSpacing =3;
  table1.BorderColor ="red";
  for(int i=1; i<=5; i++)
  {
   //create a new row and set its background color
   row = new HtmlTableRow();
   row.BgColor =(i%2==0 ?"lightyellow" : "lightcyan");
   
    for(int j=1; j<=4; j++)
    {
    //create a cell and set its text
    cell = new HtmlTableCell();
    cell.InnerHtml ="Row :" + i.ToString()+
      "<br>Cell:"+j.ToString();
      
      //add the cell to the current row
      row.Cells.Add(cell);
      }
     
     //add the row to the table
     table1.Rows.Add(row);
     }
     
     
     //add the table to page
     Page.Controls.Add(table1);
     
   }
 </script>
        上面的代碼中有兩個嵌套的迴圈:外層的迴圈建立行,然後進入內層的迴圈,內層的
    迴圈建立資料單元,並把資料單元添加到行的Cells集合中。當一次內層的迴圈結束時,
    帶有資料單元的行就被添加到表的Rows集合中。最後一步是把表添加到頁面的Controls
    集合中。執行的結果如圖4-2。
     從建立的這個表中可以看到有多少個子控制項(資料單元和行)被添加給父母的集合
     (Rows和Controls)。這個機制同樣適應於處理其他的伺服器控制項。
     

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.