導航:首頁 > IDC知識 > 伺服器控制項

伺服器控制項

發布時間:2020-08-25 18:53:09

1、伺服器控制項和客戶端控制項的詳細區別?

伺服器端控制項:伺服器端控制項就是組件啦,因為在實際的網站開發中某些功能使用單純的網頁動態開發語言無法實現,就需要用到這樣東西,先用其它編程語言按照組件的標准開發相應的功能,只要我們在伺服器端安裝這個組件,我們就可以按照標准com調用方式,使用網頁開發語言來調用。
舉個例子:
現在有個資料庫,我們在寫入的時候需要加密,讀出的時候需要解密,如果僅使用asp或php進行加密解密,那麼我們只要有asp或php的代碼,就可以很輕松地知道解密的演算法,那麼加密也就失去了意義。所以我們需要一個封裝的dll來解決這樣的問題。
大致就這樣吧。 另外,伺服器端控制項必須要有runat=server這句話。客戶端控制項 由客戶端瀏覽器解釋執行。區別:客戶端控制項由客戶端瀏覽器解釋執行伺服器控制項需要回發執行,當首次打開頁面時,需初始化
伺服器端控制項和客戶端控制項在性能上是用差別的。伺服器端控制項比較靈活,客戶端控制項性能好,我們怎麼選擇,一般都是根據實際需求來,伺服器端控制項在性能上是沒有客戶端控制項性能好,但是一個項目可以注意性能的方面很多,如果刻意的話,不太好,可能一個Textbox區別不是很多,但是一個GridView就很麻煩了,會花去很多時間。孟老師也的說法也有一定的道理,凡是不能走極端,充分利用各自的特點,平衡各方面的因素。總結:盡量使用客戶端控制項,服務端控制項會引起回發,而降低效率。
在能實現相同的功能,首選客戶端控制項。
不過有時候,必須要服務端控制項才能實現功能,如後台要處理業務邏輯。
伺服器控制項實際上就是客戶端控制項在客戶端的映射而已。

2、伺服器端控制項和客戶端控制項的比較?

區別:伺服器端控制項都會有個runat="Server"屬性,
這樣才能夠在後台對其進行設置修改,
也就是在cs代碼裡面能對其修改設置。
你做下測試 你放個HTML控制項 在CS代碼是引用不出控制項名的
然後你個HTML控制項加上runat="Server" 在CS代碼就能引用該控制項了
本質上ASP.NET 的伺服器控制項 解析後返回到前台還是HTML控制項
你建個頁面 放一個asp:textbox上去
然後運行頁面,然後查看頁面源文件
你會發現放上的伺服器控制項變成了HTML的inupt type="button"

至於你說的視圖狀態應該是說這個吧:
由於HTTP連接屬於無狀態的,每次頁面請求都無法記錄上次請求頁面的信息。
那麼要保存上次請求頁面上控制項的值,也就是頁面刷新後,填寫的值不變,比方在textbox填了個『a』,頁面刷新後還是'a',.NET框架為實現這種機制,於是就用到了viewstate視圖狀態來保存這些控制項的值,
那麼將所有控制項的值存在什麼地方呢?你可以運行你的程序,然後在頁面中查看源文件,就可以看到一個input type="hidden" name="__VIEWSTATE"的標簽,這個就是你所謂的」視圖「,它是經過伺服器序列化過的,然後伺服器接收後會反序列化這些隱藏域的值然後又從新給這些控制項賦值,從而頁面刷新後還能記錄上次請求時候的所有控制項的值。伺服器控制項都會默認保存VIEWSTATE的 有個屬性(EnableViewState)可以設置的, 設置為Flase就不保存了,頁面刷新後,值也就沒了,可以做個測試放個textbox設置為EnableViewState為false,然後輸入個值,然後再用按鈕去刷新頁面,那麼textbox會為空,因為沒有視圖狀態記錄到上次你輸入的值。

3、js獲取伺服器控制項

首先你是伺服器端控制項。
var hf = document.getElementById("hfIDList");
這個方法肯定是對的。
只是你的ID在客戶端中的源代碼中變了。
你點擊右鍵查看源代碼得到正確的ID即可。

或者採用
var hf = document.getElementById("<%=hfIDList.ClientID%>");

<%=hfIDList.ClientID%> 可直接獲取正確的ID。

4、web 伺服器控制項的工作原理

Web 伺服器控制項 (Web server control) 屬於 System.Web.UI.WebControls 命名空間的 ASP.NET 伺服器控制項。Web 伺服器控制項比 HTML 伺服器控制項更豐富、更抽象。Web 伺服器控制項在 ASP.NET 頁上有 asp 標記前綴,例如 <asp:Button runat="server" />。 HTML控制項可以通過修改代碼將其變成Web伺服器端控制項,幾乎所有的HTML標記只要加上runat = "server",這個伺服器控制項標識屬性後都可以變成伺服器端控制項。這與普通HTML標記相比最大的區別在於,伺服器端控制項可以通過伺服器端代碼來控制。

5、簡述HTML伺服器控制項

HTML 伺服器控制項是伺服器可理解的 HTML 標簽。ASP.NET 文件中的 HTML 元素默認作為文本內進行處理。為了使這容些元素可編程化,需要向 HTML 元素添加 runat="server" 屬性。該屬性指示該元素應作為伺服器控制項進行處理。
註:1、所有 HTML 伺服器控制項必須位於帶有 runat="server" 屬性的 <form> 標簽內!
2、ASP.NET 要求所有 HTML 元素必須正確關閉和嵌套。

WEB伺服器控制項與HTML伺服器控制項的區別是:
1、前者可以觸發伺服器控制項特有的事件,後者只能通過回遞的方式觸發伺服器上的頁面級事件。
2、輸入到前者中的數據在請求之間可以維護(即具有狀態管理功能),而後者無法自動維護數據,只能使用頁面級的腳本來保存和恢復。
3、前者可以自動檢測瀏覽器並調整到恰當的顯示,而後者沒有自動適應功能,必須在代碼中手動檢測瀏覽器。
4、每個伺服器控制項都具有一組屬性,可以在伺服器端的代碼中更改控制項的外觀和行為,而後者只有HTML屬性。
註:如果某些控制項不需要伺服器端的事件或狀態管理功能時,可以選擇HTML控制項,這樣可以提高應用程序的性能。

6、asp.net伺服器控制項與客戶端控制項的區別?

區別:伺服器端控制項都會有個runat="Server"屬性,
這樣才能夠在後台對其進行設置修改,
也就是在cs代碼裡面能對其修改設置。
你做下測試 你放個HTML控制項 在CS代碼是引用不出控制項名的
然後你個HTML控制項加上runat="Server" 在CS代碼就能引用該控制項了
本質上ASP.NET 的伺服器控制項 解析後返回到前台還是HTML控制項
你建個頁面 放一個asp:textbox上去
然後運行頁面,然後查看頁面源文件
你會發現放上的伺服器控制項變成了HTML的inupt type="button"

至於你說的視圖狀態應該是說這個吧:
由於HTTP連接屬於無狀態的,每次頁面請求都無法記錄上次請求頁面的信息。
那麼要保存上次請求頁面上控制項的值,也就是頁面刷新後,填寫的值不變,比方在textbox填了個『a』,頁面刷新後還是'a',.NET框架為實現這種機制,於是就用到了viewstate視圖狀態來保存這些控制項的值,
那麼將所有控制項的值存在什麼地方呢?你可以運行你的程序,然後在頁面中查看源文件,就可以看到一個input type="hidden" name="__VIEWSTATE"的標簽,這個就是你所謂的」視圖「,它是經過伺服器序列化過的,然後伺服器接收後會反序列化這些隱藏域的值然後又從新給這些控制項賦值,從而頁面刷新後還能記錄上次請求時候的所有控制項的值。伺服器控制項都會默認保存VIEWSTATE的 有個屬性(EnableViewState)可以設置的, 設置為Flase就不保存了,頁面刷新後,值也就沒了,可以做個測試放個textbox設置為EnableViewState為false,然後輸入個值,然後再用按鈕去刷新頁面,那麼textbox會為空,因為沒有視圖狀態記錄到上次你輸入的值。

7、web伺服器控制項和HTML控制項的區別用法

WEB伺服器控制項是HTML控制項的一種擴展,區別是:

1)前者可以觸發伺服器控制項特有的事件,後者只能通過回遞的方式觸發伺服器上的頁面級事件。

2)輸入到前者中的數據在請求之間可以維護(即具有狀態管理功能),而後者無法自動維護數據,只能使用頁面級的腳本來保存和恢復。

3)前者可以自動檢測瀏覽器並調整到恰當的顯示,而後者沒有自動適應功能,必須在代碼中手動檢測瀏覽器。

4)每個伺服器控制項都具有一組屬性,可以在伺服器端的代碼中更改控制項的外觀和行為,而後者只有HTML屬性。

如果某些控制項不需要伺服器端的事件或狀態管理功能時,可以選擇HTML控制項,這樣可以提高應用程序的性能。

8、伺服器控制項和html控制項的區別

首先我們說說二者的概念區別吧(相信大家都清楚)
1. asp控制項是服務端控制項,html是客戶端控制項。
2. asp控制項在服務端解析後,會轉化為html控制項使得客戶端瀏覽器能夠顯示出來。也就是說最終的產物都是html控制項。
3. asp控制項只有安裝.netFrameWork的伺服器才能解析的來,而html用Java,php,asp都可以。

那麼下面說說二者的功能實現區別
1. asp控制項是必須發生頁面提交的(除非強製取消,見2.),而html控制項則可以提交也可以不提交(通過type屬性設置)
2. asp控制項OnClick與OnClientClick區別:OnClientClick執行客戶端事件響應(由JavaScript控制);OnClick執行服務端事件響應。
3. asp控制項的 OnClick 與html控制項的 OnClick 意義不同:前者由服務端事件響應,後者由客戶端響應。
4. html控制項加上runat="server"後,與asp控制項基本無異(此時已轉化為服務端控制項了),服務端就可以響應html控制項。
5. html控制項里的屬性關鍵字都要是小寫的。所以大家要注意這些細節了,小小控制項也會有大學問的,而且b/s開發較c/s開發本身就有復雜度,很多細節都是不太一樣的。
二者的優先順序:OnClientClick > OnClick 。

9、簡述HTML控制項和WEB伺服器控制項的區別?

WEB伺服器控制項是HTML控制項的一種擴展,區別是:

1)前者可以觸發伺服器控制項特有的事件,後者只能通過回遞的方式觸發伺服器上的頁面級事件。

2)輸入到前者中的數據在請求之間可以維護(即具有狀態管理功能),而後者無法自動維護數據,只能使用頁面級的腳本來保存和恢復。

3)前者可以自動檢測瀏覽器並調整到恰當的顯示,而後者沒有自動適應功能,必須在代碼中手動檢測瀏覽器。

4)每個伺服器控制項都具有一組屬性,可以在伺服器端的代碼中更改控制項的外觀和行為,而後者只有HTML屬性。

如果某些控制項不需要伺服器端的事件或狀態管理功能時,可以選擇HTML控制項,這樣可以提高應用程序的性能。

10、怎樣用JS為伺服器控制項賦值

//1、JS腳本為伺服器控制項賦值
語法:document.getElementById('<%=伺服器控制項名.ClientID%>')
document.getElementById('<%=TextBox2.ClientID%>『).value= 「aaaaa」 ;
<anthem:TextBox ID= "TextBox2" runat= "server" Text= "bbbbb" >< /anthem:TextBox> //這個是anthem的控制項,跟asp.Net ajax框架的控制項一樣.
//2、JS腳本為伺服器中用戶控制項中的控制項賦值
語法:document.getElementById("<%=伺服器控制項名.ClientID%>"+"_用戶控制項中控制項名")
document.getElementById( "<%=UserInfoControl1.ClientID%>"+"_txtBAname").value= 「aaaaa」 ;
頁面使用的用戶控制項: <uc1:UserInfoControl ID= "UserInfoControl1" runat= "server" />
用戶控制項代碼:
<anthem:TextBox ID="txtBAname" runat="server" Width="64px" CssClass="lankuang" ></anthem:TextBox>

如果js為伺服器控制項Lable賦值的話,語法為:
document.getElementById("<%=CaseControl1.ClientID%>"+ "_lblZhusu").innerHTML= "aaaaaaa" ;
但是由於label映射到客戶端是Div標簽,所以後台取的還是原來的值

與伺服器控制項相關的知識