我們知道,在Asp.net中適當(dāng)?shù)氖褂肏tml控件有許多方便之處,Html控件既能在客戶端進(jìn)行腳本處理,又能在網(wǎng)頁提交至服務(wù)器后在cs文件中控制,如果用單獨的Web服務(wù)器控件則不能做到這一點,限制了我們開發(fā)的靈活性.因此我們會在好多地方會使用到HtmlButton控件.下面就談?wù)勗摽丶粋使用的小技巧: 如果要點擊HtmlButton后使網(wǎng)頁提交,我們會選擇將該HtmlButton作為服務(wù)器控件運行.這樣做每次點擊HtmlButton都會使頁面提交至服務(wù)器,但如果我們需要在點擊按鈕之后在客戶端做一些處理,然后再選擇是否使網(wǎng)頁提交,按照一般的處理方法,似乎HtmlButton無能為力了,但是我們分析一下HtmlButton在網(wǎng)頁運行后生成的Html,生成Html如下: <input language="javascript" onclick="__doPostBack('clientbutton','')" name="clientbutton" id="clientbutton" type="button" style="Z-INDEX: 101; LEFT: 168px; POSITION: absolute; TOP: 80px" value="Button" /> 我們看到生成的Html給按鈕添加了一下onclick事件,從而使網(wǎng)頁提交,那明白它的執(zhí)行過程,我們就知道該怎么做了,如果我們在__doPostBack('clientbutton','')執(zhí)行之前,給按鈕加一客戶端操作再決定是否提交這們不就滿足我們的需求了,大家明白實現(xiàn)原理了,我就不講那么羅瑣了,下面我就說怎樣實現(xiàn)了: 1 我們在后臺cs文件中給HtmlButton加屬性,其中clientbutton為HtmlButton為id,clientoper為客戶端javascript function. clientbutton.Attributes.Add("onclick","if(!clientoper()){return;}"); 該話句一般放在網(wǎng)頁加載事件中. 2 客戶端添加clientoper方法,執(zhí)行您需要的操作,操作完成之后根據(jù)返回值決定是否需要提交,返回true網(wǎng)頁提交,false則不提交. <script language=javascript> function clientoper() { //這里可以執(zhí)行客戶端操作,比如驗證之類的 //這里判斷是否提交 var result=window.confirm("您確認(rèn)要提交嗎?"); if(result) { return true; } else { return false; } } </script> 方法也很簡單,相信朋友們一看就明白了,說到這有朋友問了,可這只適用于HtmlButton,按鈕,多死板,如果想用圖片做按鈕怎么辦,方法當(dāng)然有,也不需要修改什么,研究一下按鈕的css樣式就滿足你的需要了!
|