asp控件和html控件的概念區(qū)別
1. asp控件是服務(wù)端控件,html是客戶(hù)端控件。
2. asp控件在服務(wù)端解析后,會(huì)轉(zhuǎn)化為html控件使得客戶(hù)端瀏覽器能夠顯示出來(lái)。也就是說(shuō)最終的產(chǎn)物都是html控件。
3. asp控件只有安裝.netFrameWork的服務(wù)器才能解析的來(lái),而html用Java,php,asp都可以。
那么下面說(shuō)說(shuō)二者的功能實(shí)現(xiàn)區(qū)別
1. asp控件是必須發(fā)生頁(yè)面提交的(除非強(qiáng)制取消,見(jiàn)2.),而html控件則可以提交也可以不提交(通過(guò)type屬性設(shè)置)
2. asp控件OnClick與OnClientClick區(qū)別:OnClientClick執(zhí)行客戶(hù)端事件響應(yīng)(由JavaScript控制);OnClick執(zhí)行服務(wù)端事件響應(yīng)。
二者的優(yōu)先級(jí):OnClientClick > OnClick 。
二者同時(shí)存在于asp控件時(shí)舉例:
<asp:Button ID="btnDel" Width="80px" CssClass="buttonstyle" runat="server" Text="刪除" OnClientClick="return jsDel();" OnClick="btnDel_Click1" />
需要注意的是當(dāng)我們當(dāng)擊這個(gè)按鈕時(shí),自動(dòng)先執(zhí)行的客戶(hù)端,再執(zhí)行服務(wù)器端的.如果客戶(hù)端返回的是false,那么服務(wù)器端對(duì)應(yīng)的方法永遠(yuǎn)不會(huì)執(zhí)行.這樣就達(dá)到檢測(cè),只有通過(guò)才去執(zhí)行服務(wù)器端的方法.
也就是說(shuō)如果我們上面寫(xiě)成:
<asp:Button ID="btnDel" Width="80px" CssClass="buttonstyle" runat="server" Text="刪除" OnClientClick="jsDel(); return false;" OnClick="btnDel_Click1" />
那么不管jsDel執(zhí)行的結(jié)要如何.服務(wù)器端對(duì)應(yīng)的btnDel_Click1方法都永遠(yuǎn)不會(huì)執(zhí)行.因?yàn)閞eturn false使得始終使客戶(hù)端返回false
如果我們寫(xiě)成:
<asp:Button ID="btnDel" Width="80px" CssClass="buttonstyle" runat="server" Text="刪除" OnClientClick="jsDel();" OnClick="btnDel_Click1" />
那么btnDel_Click1都有會(huì)發(fā)生.同樣也就達(dá)不到效果.也就是說(shuō)你沒(méi)有通過(guò)檢測(cè)也去執(zhí)行服務(wù)器的方法了.所以必須注意了.
3. asp控件的 OnClick 與html控件的 OnClick 意義不同:前者由服務(wù)端事件響應(yīng),后者由客戶(hù)端響應(yīng)。
4. html控件加上runat="server"后,與asp控件基本無(wú)異(此時(shí)已轉(zhuǎn)化為服務(wù)端控件了),服務(wù)端就可以響應(yīng)html控件。
5. html控件里的屬性關(guān)鍵字都要是小寫(xiě)的。所以大家要注意這些細(xì)節(jié)了,小小控件也會(huì)有大學(xué)問(wèn)的,而且b/s開(kāi)發(fā)較c/s開(kāi)發(fā)本身就有復(fù)雜度,很多細(xì)節(jié)都是不太一樣的。
我們知道,服務(wù)器控件,在id會(huì)加上一系列的其他參數(shù):
類(lèi)似:
<asp:CheckBoxList runat="server" ID="chkTrainConfirmType" RepeatDirection="horizontal" style="display:none">
</asp:CheckBoxList>
而在服務(wù)器端表現(xiàn):
ctl00_ContentMain_chkTrainConfirmType
而我們要在客戶(hù)端操作這些控件,調(diào)用id有如下方法:
1.運(yùn)行頁(yè)面查看源代碼 復(fù)制ID //不可取
2.document.getElementById("<%=buttn.ClientID%>") //只能在頁(yè)面上js代碼獲取 js文件里邊獲取不了 //buttn和下面的txt1均為控件的id
3.在后臺(tái)注冊(cè)方法 把所需要的ID全部當(dāng)參數(shù)傳進(jìn)去
Button1.Attributes["click"] = "Button_click(" + txt1.ClientID + "," + txt1.ClientID + "," + txt.ClientID + ");";
相關(guān)文章
.Net Core使用OpenXML導(dǎo)出、導(dǎo)入Excel
這篇文章主要為大家詳細(xì)介紹了.Net Core使用OpenXML導(dǎo)出、導(dǎo)入Excel的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04.NET?Core配置連接字符串和獲取數(shù)據(jù)庫(kù)上下文實(shí)例
這篇文章介紹了.NET?Core配置連接字符串和獲取數(shù)據(jù)庫(kù)上下文實(shí)例的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01Asp.net使用SignalR實(shí)現(xiàn)發(fā)送圖片
這篇文章主要為大家詳細(xì)介紹了Asp.net使用SignalR實(shí)現(xiàn)發(fā)送圖片,需要的朋友可以參考下2016-04-04dataGrid 多維表頭、表頭跨行跨列設(shè)計(jì)及綁定數(shù)據(jù)
dataGrid 其實(shí)就是一個(gè)html table,本文將介紹dataGrid 多維表頭,表頭跨行跨列設(shè)計(jì)方法需要了解的朋友可以參考下2012-12-12.NET生成動(dòng)態(tài)驗(yàn)證碼的完整步驟
這篇文章主要給大家介紹了關(guān)于.NET生成動(dòng)態(tài)驗(yàn)證碼的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用.NET具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07asp.net DropDownList自定義控件,讓你的分類(lèi)更清晰
記得上次做論壇,一個(gè)功能就是合并2個(gè)子板塊的主題,用級(jí)聯(lián)的2個(gè)DropDownList也是可以完成,那樣我們要合并的時(shí)候總共就有4個(gè)DropDownList控件,覺(jué)得界面友好2011-10-10ASP.NET通過(guò)byte正確安全的判斷上傳文件格式
本文介紹一種更安全的方式上傳圖片,他能有效的防止一些通過(guò)修改文件后綴或MIME來(lái)偽造的圖片的上傳,從而保證服務(wù)器的安全,希望對(duì)大家有所幫助。2016-03-03ASP.NET?Core實(shí)時(shí)庫(kù)SignalR簡(jiǎn)介及使用
這篇文章介紹了ASP.NET?Core實(shí)時(shí)庫(kù)SignalR簡(jiǎn)介及使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01談?wù)勅绾卧贏(yíng)SP.NET Core中實(shí)現(xiàn)CORS跨域
本篇文章主要介紹了如何在A(yíng)SP.NET Core中實(shí)現(xiàn)CORS跨域,CORS主要是解決Ajax跨域限制的問(wèn)題,有興趣的可以了解一下。2016-12-12