asp控件和html控件的概念區(qū)別
1. asp控件是服務(wù)端控件,html是客戶端控件。
2. asp控件在服務(wù)端解析后,會(huì)轉(zhuǎn)化為html控件使得客戶端瀏覽器能夠顯示出來(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í)行客戶端事件響應(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í)行的客戶端,再執(zhí)行服務(wù)器端的.如果客戶端返回的是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使得始終使客戶端返回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),后者由客戶端響應(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ù):
類似:
<asp:CheckBoxList runat="server" ID="chkTrainConfirmType" RepeatDirection="horizontal" style="display:none">
</asp:CheckBoxList>
而在服務(wù)器端表現(xiàn):
ctl00_ContentMain_chkTrainConfirmType
而我們要在客戶端操作這些控件,調(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)文章
ASP.NET MVC限制同一個(gè)IP地址單位時(shí)間間隔內(nèi)的請(qǐng)求次數(shù)
這篇文章介紹了ASP.NET MVC限制同一個(gè)IP地址單位時(shí)間間隔內(nèi)請(qǐng)求次數(shù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
開(kāi)源跨平臺(tái)運(yùn)行服務(wù)插件TaskCore.MainForm
這篇文章主要為大家詳細(xì)介紹了開(kāi)源跨平臺(tái)運(yùn)行服務(wù)插件TaskCore.MainForm的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
asp.Net 中獲取一周第一天,一月第一天等實(shí)現(xiàn)代碼
.Net中獲取一周第一天、最后一天,一月第一天、最后一天2009-12-12
asp.net中一次性動(dòng)態(tài)綁定多個(gè)droplistdown
asp.net中一次性動(dòng)態(tài)綁定多個(gè)droplistdown的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-10-10
asp.net獲取ListView與gridview中當(dāng)前行的行號(hào)
這篇文章主要介紹了asp.net獲取ListView與gridview中當(dāng)前行的行號(hào),實(shí)例分析了asp.net針對(duì)ListView與gridview獲取行號(hào)的實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-01-01
asp.net 處理F5刷新頁(yè)面重復(fù)提交頁(yè)面的一個(gè)思路
當(dāng)提交完一個(gè)頁(yè)面后,如果我們?cè)俅吸c(diǎn)擊F5刷新該頁(yè)面的話,會(huì)彈出一個(gè)提示,提示我們?nèi)绻^續(xù),則會(huì)重新發(fā)送提交我們剛才提交的內(nèi)容,要是類似付款或一次性的操作,我們不應(yīng)該這樣操作,否則會(huì)造成重復(fù)提交的問(wèn)題。2010-02-02
在asp.net中操作sql server數(shù)據(jù)庫(kù)的一些小技巧
在asp.net中操作sql server數(shù)據(jù)庫(kù)的一些小技巧...2006-09-09
ASP.NET MVC3 實(shí)現(xiàn)全站重定向的簡(jiǎn)單方法
這篇文章主要介紹了ASP.NET MVC3 實(shí)現(xiàn)全站重定向的簡(jiǎn)單方法,有需要的朋友可以參考一下2014-01-01
Visual Studio 2013更新內(nèi)容簡(jiǎn)介
這篇文章主要為大家分享了Visual Studio 2013更新內(nèi)容簡(jiǎn)介,感興趣的小伙伴們可以參考一下2016-05-05

