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);