---恢復內容開始---瀏覽器
第一種:HTML控件服務器
ASP.Net把HTML控件當成普通字符串渲染到瀏覽器端,不去檢查正確性、沒法在服務器端進行處理。spa
好比:code
1 <input111 type="text" name="name" value=" " />
2 <input type="text" name="name" value=" " />
本身寫的錯誤的HTML控件不會在瀏覽器顯示,也不會報錯。orm
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服務端控件server
通過ASP.Net高度封裝的控件,使用簡單,運行在服務器端,能夠在服務端使用C#代碼進行操做,會渲染到客戶端爲HTML控件。blog
好比:字符串
1 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
在瀏覽器端渲染爲:get
1 <input name="TextBox1" type="text" id="TextBox1" />
第三種:runat="server"的HTML控件。input
在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 %>");