你有什么權利不努力作文
WEB控件分為:內部控件, 列表控件, 復雜控件, 驗證控件

內部控件–內部控件的使用方法與 HTML 控件相同,它們映射到 HTML 元素并通過(guò)使用 runat = “server” 屬性在服務(wù)器上執行
列表控件–用于在 Web 頁(yè)中創(chuàng )建數據列表
復雜控件– ?當希望控件擁有復雜的功能或使用 HTML 元素無(wú)法創(chuàng )建的功能豐富的用戶(hù)界面時(shí),可以使用復雜控件
驗證控件–輸入控件的數據需要進(jìn)行準確性和取值范圍方面的檢查
拓展:
ASP。NET中共有幾種類(lèi)型的控件?
三種:1-asp.net控件(動(dòng)態(tài)) 2-標準的html控件(靜態(tài)) 3-標準的html控件加runat="server"屬性(動(dòng)態(tài))
動(dòng)態(tài)頁(yè)面主要由這三種控件畫(huà)出來(lái)。從數據庫獲取到數據后把數據綁定到這些控件上發(fā)給瀏覽器顯示出來(lái)。把數據綁定到控件屬性的時(shí)候有兩個(gè)重要的方法
Eval("字段")
Bind("字段")
Eval("字段")方法只是把數據綁定到數據控件上,并不提供修改的操作。
Bind("字段")方法是把數據綁定到數據控件上,并提供修改的操作。
●ASP。NET中共有幾種類(lèi)型的控件?
兩種:
1. 客戶(hù)端控件,也就是我們在HTML中經(jīng)常用到的
2. 服務(wù)端控件,例如:
客戶(hù)端控件也可以轉成服務(wù)端控件
他們的區別?
1.編譯 ASP.NET 應用程序時(shí),具有 runat=server 屬性的 HTML 服務(wù)器控件被編譯為程序集?上雋tml控件在客戶(hù)端也要在內存中生產(chǎn)一個(gè)dll,并加到dom模型中。這樣js就能編輯它了。
2.區別:服務(wù)器端控件都會(huì )有個(gè)runat="Server"屬性,
這樣才能夠在后臺對其進(jìn)行設置修改,
也就是在cs代碼里面能對其修改設置。
你做下測試 你放個(gè)HTML控件 在CS代碼是引用不出控件名的
然后你個(gè)HTML控件加上runat="Server" 在CS代碼就能引用該控件了
本質(zhì)上ASP.NET 的服務(wù)器控件 解析后返回到前臺還是HTML控件
你建個(gè)頁(yè)面 放一個(gè)asp:textbox上去
然后運行頁(yè)面,然后查看頁(yè)面源文件
你會(huì )發(fā)現放上的服務(wù)器控件變成了HTML的inupt type="button"
至于你說(shuō)的視圖狀態(tài)應該是說(shuō)這個(gè)吧:
由于HTTP連接屬于無(wú)狀態(tài)的,每次頁(yè)面請求都無(wú)法記錄上次請求頁(yè)面的信息。
那么要保存上次請求頁(yè)面上控件的值,也就是頁(yè)面刷新后,填寫(xiě)的值不變,比方在textbox填了個(gè)‘a’,頁(yè)面刷新后還是'a',.NET框架為實(shí)現這種機制,于是就用到了viewstate視圖狀態(tài)來(lái)保存這些控件的值,
那么將所有控件的值存在什么地方呢?你可以運行你的程序,然后在頁(yè)面中查看源文件,就可以看到一個(gè)input type="hidden" name="__VIEWSTATE"的標簽,這個(gè)就是你所謂的”視圖“,它是經(jīng)過(guò)服務(wù)器序列化過(guò)的,然后服務(wù)器接收后會(huì )反序列化這些隱藏域的值然后又從新給這些控件賦值,從而頁(yè)面刷新后還能記錄上次請求時(shí)候的所有控件的值。服務(wù)器控件都會(huì )默認保存VIEWSTATE的 有個(gè)屬性(EnableViewState)可以設置的, 設置為Flase就不保存了,頁(yè)面刷新后,值也就沒(méi)了,可以做個(gè)測試放個(gè)textbox設置為EnableViewState為false,然后輸入個(gè)值,然后再用按鈕去刷新頁(yè)面,那么textbox會(huì )為空,因為沒(méi)有視圖狀態(tài)記錄到上次你輸入的值。
3.asp.net控件是服務(wù)端控件
響應服務(wù)端事件
HTML控件是客戶(hù)端控件
響應客戶(hù)端事件
如果你對服務(wù)端/客戶(hù)端不明白的話(huà)先去了解一下
簡(jiǎn)單來(lái)說(shuō)
HTML客戶(hù)端的事件是不會(huì )提交給服務(wù)端的
比如說(shuō)點(diǎn)擊一個(gè)按鈕 改變文字的顏色
只是針對用戶(hù)機器本身的 不會(huì )發(fā)送數據包給遠程的服務(wù)器
而asp.net按鈕點(diǎn)擊后
將會(huì )以post或者get形式發(fā)送給服務(wù)器
進(jìn)行數據庫操作等等 頁(yè)面提交后將會(huì )刷新
但是ajax技術(shù)可以使客戶(hù)端控件發(fā)送請求給webservice
具體的用法
如果強調客戶(hù)端的 應用
用客戶(hù)端控件更能使用戶(hù)感覺(jué)到方便
不用刷新頁(yè)面
而需要數據庫等操作時(shí) 肯定要用服務(wù)端控件
但是沒(méi)有絕對的
我現在做的項目就是兩者結合用
4.web服務(wù)器控件并非只是運行在服務(wù)器端這么簡(jiǎn)單,它是.NET中封裝好的組件,每個(gè)控件都是一個(gè)對象,屬于某個(gè)基類(lèi),有自己的屬性,事件和方法.由在.net framework下執行.
而 HTML只是普通的HTML標記,就算加上runat=server也沒(méi)有服務(wù)端控件那么強大的方法,只是有簡(jiǎn)單的屬性和事件而已.HTML控件有 runat=server后在服務(wù)器端加載,可以通過(guò)服務(wù)器端操縱這個(gè)控件,比如賦value值.和真正的Web服務(wù)器控件還差的很遠.充其量只能算是一行代碼.
5.設置為服務(wù)器控件可以通過(guò)頁(yè)面.cs文件使用,它的值都可以在后臺得到。
這樣你在后臺可以通過(guò)this.txt1.Value來(lái)獲取到文本框中的值。
標準的服務(wù)器控件是
它在后來(lái)的使用是this.TextBox1.Text而不是.Value
6.因為服務(wù)器要用這些控件呀。
HTML控件是從HTML標記衍生來(lái)的,HTML控件的外形與HTML標記相似,不同之處在于:HTML標記只能在客戶(hù)端瀏覽器中使用,服務(wù)器無(wú)法使用。
服務(wù)器通常要把控件中的數據或存于數據庫中,或做些改變重新發(fā)回去等事情。 如果不設置為服務(wù)器控件,服務(wù)器就不能使用它。
7.Asp.net之所以方便和強大,關(guān)鍵是它有一組強大的Asp.net服務(wù)器控件,在A(yíng)sp.net中我們經(jīng)常會(huì )遇到Html控件,Html服務(wù)器控件、Web控件和Asp.net服務(wù)器控件。
Html控件:就是我們傳統所說(shuō)的Html 超文本標記語(yǔ)言,這些Html控件在以往的靜態(tài)網(wǎng)頁(yè)或網(wǎng)頁(yè)里即可滿(mǎn)足我們的需求,Html控件并沒(méi)有辦法利用程序直接來(lái)控制它們的屬性、使用方法和接收事件,我們必須另外學(xué)習其它如JavaScript 等程序語(yǔ)言才得以控制。如:。
Html服務(wù)器控件:就是上面我們講的Html控件的屬性里加上runat="server"所構成的控件,至于Html控件和Html服務(wù)器控件之間的區別很明顯,Html服務(wù)器控件是運行于服務(wù)器端,Html控件是運行于客戶(hù)端。具體來(lái)說(shuō):當ASP.NET 網(wǎng)頁(yè)執行時(shí),會(huì )檢查標注有無(wú)runat 屬性,如果標注沒(méi)有設定,那么Html控件就會(huì )被視為字符串,并被送到字符串流等待送到客戶(hù)端,客戶(hù)端的瀏覽器會(huì )對其進(jìn)行解釋;如果Html控件有設定 runat="server" 屬性,Page 對象會(huì )將該控件放入控制器,服務(wù)器端的代碼就能對其進(jìn)行控制,等到控制執行完畢后再將Html服務(wù)器控件的執行結果轉換成Html標注,然后當成字符串流發(fā)送到客戶(hù)端進(jìn)行解釋。如:。
Asp.net服務(wù)器控件:也叫Web服務(wù)器控件,Asp頁(yè)面中用來(lái)定義Web應用程序用戶(hù)界面的組件,是Web Forms編程模型的基本元素,它會(huì )依Client的情況生產(chǎn)一個(gè)或者多個(gè)Html控件,而不是直接描述Html元素。如。那它和Html服務(wù)器端控件有什么區別,以及它有什么新的特點(diǎn)呢?
1、 Asp.net服務(wù)器控件提供更加統一的編程接口,如每個(gè)Asp.net服務(wù)器控件都有Text屬性。
2、 隱藏客戶(hù)端的不同,這樣程序員可以把更多的精力放在業(yè)務(wù)上,而不用去考慮客戶(hù)端的瀏覽器是ie還是firefox,或者是移動(dòng)設備。
3、 Asp.net服務(wù)器控件可以保存狀態(tài)到ViewState里,這樣頁(yè)面在從客戶(hù)端回傳到服務(wù)器端或者從服務(wù)器端下載到客戶(hù)端的過(guò)程中都可以保存。
4、 事件處理模型不同,Html標注和Html服務(wù)器控件的事件處理都是在客戶(hù)端的頁(yè)面上,而Asp.net服務(wù)器控件則是在服務(wù)器上,舉例來(lái)說(shuō):
是Html服務(wù)器控件,此時(shí)我們點(diǎn)擊此按鈕,頁(yè)面不會(huì )回傳到服務(wù)器端,原因是我們沒(méi)有為其定義鼠標點(diǎn)擊事件。
我們?yōu)镠tml服務(wù)器控件添加了一個(gè)onserverclick事件,點(diǎn)擊此按鈕頁(yè)面會(huì )發(fā)回服務(wù)器端,并執行test(object sender, EventArgs e)方法。
是Asp.net服務(wù)器控件,并且我們沒(méi)有為其定義click,但是我們點(diǎn)擊時(shí),頁(yè)面也會(huì )發(fā)回到服務(wù)器端。
由此可見(jiàn):Html標注和Html服務(wù)器控件的事件是由頁(yè)面來(lái)觸發(fā)的,而Asp.net服務(wù)器控件則是由頁(yè)面把Form發(fā)回到服務(wù)器端,由服務(wù)器來(lái)處理。
以上是我們對Asp.net里的控件進(jìn)行了簡(jiǎn)單的介紹,我們通常說(shuō)的Web控件也就是指Asp.net服務(wù)器控件。
5.
1.一個(gè)網(wǎng)頁(yè)里可以劃分為兩部分:
1.1一部分是固定不變的(沒(méi)有runat=server)
這一部分的在A(yíng)SP.Net中是逐字輸出的,在空間樹(shù)中有Literal控件直接生成,在頁(yè)面中不能對其進(jìn)行修改,因為它沒(méi)有自己對應的對象實(shí)例
1.2一部分是變化的(runat=server)
這一部分在A(yíng)SP.Net中首先會(huì )生成一個(gè)對應的對象實(shí)例,通過(guò)這個(gè)對象實(shí)例在頁(yè)面中可以對其進(jìn)行修改,這種控件叫做服務(wù)器控件,但是這種控件又分為兩種:
1.2.1一種是System.Web.UI.HtmlControls命名空間下的控件,這種控件可以在后綴名為aspx和htm文件下使用
1.2.2一種是System.Web.UI.WebControls命名空間下的控件,這種控件可以在后綴名為aspx文件下使用
2.由上面的內容可知,一個(gè)頁(yè)面程序在執行時(shí),其實(shí)是把一個(gè)頁(yè)面文件轉換為一個(gè)類(lèi)的實(shí)例,這個(gè)類(lèi)就是頁(yè)面類(lèi)(Page),這個(gè)類(lèi)有個(gè) Controls的屬性,通過(guò)它可以得到一個(gè)ControlCollection類(lèi)型的對象,這個(gè)對象包含了該頁(yè)面下的所有控件(由上面的劃分方法獲得),而頁(yè)面下的控件也有ControlCollection屬性,也包含有子控件,由此就構成了一個(gè)控件樹(shù)。此控件樹(shù)可以在頁(yè)面命令里把Trace設置為T(mén)rue時(shí)看到。
【你有什么權利不努力作文】相關(guān)文章:
你還有什么理由不努力02-20
不努力有什么理由去埋怨作文(通用24篇)07-30
感謝有你作文感謝有你作文11-19
因為有你作文初中習作《因為有了你》07-05
從不努力到努力的作文12-22
不努力話(huà)題作文(精選25篇)02-23
感謝有你作文01-03
感謝有你作文01-03
因為有你的作文01-16
感謝有你作文01-06
- 相關(guān)推薦