今天開始把最基礎的Asp.Net服務端基本控件學習鞏固了一下html
1.Asp.Net服務端控件是Asp.Net對HTML的封裝,在C#代碼中就能夠用txt1.Text="指定值"這種方式修改 input的值,Asp.Net會將服務端控件渲染成HTML代碼輸出給瀏覽器,服務端控件是Asp.Net很是容易上手,也很是吸引初學者,但也是被人詬病的東西。由於它會傳輸不少沒法的東西,如viewstate. 服務端控件在內網或互聯網系統的後臺部分等訪問頻率不高的地方仍是很適合的。web
服務端控件只能用post方式提交,用get很麻煩,由於它攜帶了大量的數據,若是用get會給用戶很大的干擾。瀏覽器
2.全部的Asp.net大部分都有是從Control,WebControl類繼承的,幾乎全部成員有如下內種屬性:服務器
(1) ClientID:控件在客戶端的ID,控件在服務端的id不必定等於客戶端HTML中的id,如在用戶自定義的web控件中放出一個edit和 button,它們默認的id爲textBox1和button1,當咱們把這個web控件拖動到一個網頁上時就會顯示這兩個控件,你多放上幾個此種控 件,你再看下html客戶端源碼,你會發現它和服務端的id是不同的,這就是clientID.函數
所以若是要在客戶端經過Js,jQuery,Dom的getElementById,$("#id")來操做控件的話最好不要直接寫服務端ID,而是這樣寫:$("#<%=txt1.ClientID%")等.post
(2) Visible屬性,控件是否可見。若是Visible=False是不會被渲染到HTML客戶端的,這和在HTML中 style.display=none的效果是不同的。 若是用HTML的display效果,你在運行進查看網頁的源碼,就會發如今html中能夠看到這些元素,而若是用服務端控件的visible爲 false,則在網頁的源碼中是看不到這個元素的,即在客戶端這個元素並不存在。只有爲Ttrue時纔會出如今客戶端。學習
(3) CssClass屬性:控件的樣式名,其實就是HTML控件的class屬性。網站
(4) Attributes:用來設置獲取控件的額外屬性,和Dom中的setAttribute(),getAttribute()是同樣的。spa
它有幾下幾個經常使用的控件:.net
1.Label控件,Text屬性爲顯示的文本,AssociatedControlID屬性用來關聯一個控件。若是爲空的話會展現爲HTML中的 span元素。若是指定爲一個控件的id,則會展現爲一個HTML中的<Label>而且將for屬性設置爲被關聯控件的ClientID.
2. Literal控件,它是展現一段文本,可是Literal控件不會渲染成任何額外的標籤,就是將Text屬性的值展現出來而已。
它有個屬性Mode的值爲Encode,至關於HttpUtility.htmlEncode函數,便可把< >等符號解析爲其它的,不會把這些符號當成js中的符號。
3. textBox控件,文本框控件,textMode屬性取值SingleLine,MultiLine,Password,分別渲染爲input的 text,textarea,password.當AutoPostBack屬性爲True時,用戶名焦點離開TextBox就會形成頁面的post.實 現原理就是TextChanged事件,即文本發生變化時觸發。
4. RadioButton控件,渲染爲input type=radio.經過Groupname 屬性進行分組。
5.Button控件。OnClientClick屬性,當用戶點擊按鈕的時候在瀏覽器端執行的代碼,注意OnClientClick是字符串屬性,寫的就是js代碼,運行在瀏覽器端。
6.LinkButton .用法和Button差很少,區別就是Button控件渲染爲按鈕,而linkButton渲染爲超鏈接。不要用linkbutton來實現普通的超連 接,由於lindbutton的href爲通常js代——進行的是表單的post.沒法在「新窗口」中打開鏈接。
7.Imagebutton控件也和button差很少,只不過是顯示圖像,渲染爲input(type=imaeg)
8.Button,linkButton,ImageButton等控件都有CommandName,CommandArgument兩處屬性和 Command事件。可讓多個按鈕控件共享一個Command事件處理函數。經過讀取事件對象e的 CommandName\CommandArgument兩個屬性讀取被點擊按鈕上設置的這兩個參數來執行不一樣的操做
9. Panel控件。 它是用來盛放一些控件,若是設定了GroupText屬性,那麼就被渲染爲<fieldset>標籤,也是就GroupBox效果,不然會渲染爲<div>效果。
10.HyperLink控件,超鏈接。和LinkButton不同,不會向服務器端Post,就是一個超鏈接。
NavigateUrl:鏈接地址; Text爲顯示文本。若是設定imageUrl屬性,則會顯示圖片超鏈接。
11.FileUpload控件,文件上傳的控件。渲染成input( type=file).
它的屬性爲: FileContent:以流的形式得到上傳的文件. FileName:上傳的文件名. HasFile:bool.表示用戶是否選擇文件。 SaveAs:用於將文件保存到磁盤的指定位置。
固然用戶能夠上傳個aspx樣的網頁而後再運行這個上傳後的網頁,它能夠在網頁上寫上:Files.deleteAllFile等,就能夠把網站上特定目 錄中的文件都刪除,如何防範:能夠只容許上傳指定類型的文件,並設定上傳的文件夾不給執行的權限便可。即WebShell就是專門幹這樣的壞事的。