国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:05:17
字體:
來源:轉載
供稿:網友
       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)。這個機制同樣適應于處理其他的服務器控件。
     
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽源市| 商丘市| 北海市| 简阳市| 遵化市| 行唐县| 合江县| 卓资县| 佛坪县| 广昌县| 三台县| 忻城县| 雅江县| 文山县| 康定县| 衡南县| 武隆县| 永修县| 万全县| 都匀市| 洞头县| 肃宁县| 田阳县| 阿拉善盟| 津南区| 肇东市| 灵宝市| 青田县| 双峰县| 东乌珠穆沁旗| 迁西县| 连云港市| 宽城| 平邑县| 板桥市| 镶黄旗| 皋兰县| 峡江县| 延寿县| 家居| 卢氏县|