ASP.Net 中的三種控件


---恢復內容開始---

第一種:HTML控件

ASP.Net把HTML控件當成普通字符串渲染到瀏覽器端,不去檢查正確性、無法在服務器端進行處理。

比如:

1 <input111 type="text" name="name" value=" " />
2 <input type="text" name="name" value=" " />

自己寫的錯誤的HTML控件不會在瀏覽器顯示,也不會報錯。

1 //客戶端: 2 <input type="text" name="name" value=" " id="text1"/>
3 -------------------------------------------------------4 //服務器端: 5 protected void Page_Load(object sender, EventArgs e) 6 { 7  text1.Text = "abc"; //報錯,名稱"text1"不存在 8 }

 

第二種:ASP.Net服務端控件

經過ASP.Net高度封裝的控件,使用簡單,運行在服務器端,可以在服務端使用C#代碼進行操作,會渲染到客戶端為HTML控件。

比如:

1 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

在瀏覽器端渲染為:

1 <input name="TextBox1" type="text" id="TextBox1" />

 

第三種:runat="server"的HTML控件。

在HTML控件的基礎上添加 runat="server",也是運行在服務器端的,也可以服務器端使用C#代碼進行操作,也會渲染到客戶端,不像ASP.Net服務端控件那樣高度封裝,暴露的屬性大部分是普通HTML屬性。和ASP.Net服務端控件相比的好處是:當需要服務器端要對控件進行操作的時候,如果控件沒有被ASP.Net服務端控件封裝的時候,用runat="server"的HTML控件很方便,runat="server"的HTML控件也會對虛擬路徑、id -> ClientID 進行處理,所以在使用虛擬路徑、UserControl中也可能會用到。

比如:

 1 protected void Page_Load(object sender, EventArgs e)  2 {  3      //ASP.Net服務器端控件高度封裝,設置樣式
 4      TextBox1.BackColor = Color.Red;   //設置背景顏色
 5      TextBox1.BorderStyle = BorderStyle.Dotted; //設置邊框  6  
 7      //runat="server"的HTML控件沒有封裝,設置樣式方式不統一  8      //Text1為文本框id,td1為表格的單元格id
 9      Text1.Value = "aaa";  //設置文本框內的值
10      td1.Align = "center"; 11      td1.BgColor = "red"; 12      td1.Width = "50%"; 13 } 14 ------------------------------------------------------------
15 //Text1能按原始的方式設置樣式
16 <input type="text" style="background-color:Green;border:dotted;" runat="server" id="Text1"/>   

 <a> -> HtmlAnchor;<form> -> HtmlForm;head -> HtmlHead;input -> HtmlInputButton、HtmlInputCheckBox、HtmlInputText等;meta -> HtmlMeta;table -> HtmlTable;tr -> HtmlTableRow;td -> HtmlTableCell;title -> HtmlTitle。未單獨封裝的標簽(比如div)對應類型為HtmlGenericControl。使用Attributes屬性操作未封裝的屬性。

 PS:在JS腳本中取第一種和第三種服務器端控件的ID方法:

document.getElementById("<%=Button1.ClientID %>");

document.getElementById("<%=TextBox1.ClientID %>");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM