Asp.net中实现HtmlButton客户端控制网页提交实现

我们知道,在Asp.net中适当的使用Html控件有许多方便之处,Html控件既能在客户端进行脚本处理,又能在网页提交至服务器后在cs文件中控制,如果用单独的Web服务器控件则不能做到这一点,限制了我们开发的灵活性.因此我们会在好多地方会使用到HtmlButton控件.下面就谈谈该控件一个使用的小技巧:
如果要点击HtmlButton后使网页提交,我们会选择将该HtmlButton作为服务器控件运行.这样做每次点击HtmlButton都会使页面提交至服务器,但如果我们需要在点击按钮之后在客户端做一些处理,然后再选择是否使网页提交,按照一般的处理方法,似乎HtmlButton无能为力了,但是我们分析一下HtmlButton在网页运行后生成的Html,生成Html如下:

1<input id="clientbutton" language="javascript" name="clientbutton" onclick="__doPostBack('clientbutton','')" style="Z-INDEX: 101; LEFT: 168px; POSITION: absolute; TOP: 80px" type="button" value="Button"/>

我们看到生成的Html给按钮添加了一下onclick事件,从而使网页提交,那明白它的执行过程,我们就知道该怎么做了,如果我们在__doPostBack('clientbutton','')执行之前,给按钮加一客户端操作再决定是否提交这们不就满足我们的需求了,大家明白实现原理了,我就不讲那么罗琐了,下面我就说怎样实现了:

1 我们在后台cs文件中给HtmlButton加属性,其中clientbutton为HtmlButton为id,clientoper为客户端javascript function. clientbutton.Attributes.Add("onclick","if(!clientoper()){return;}");
该话句一般放在网页加载事件中.
2 客户端添加clientoper方法,执行您需要的操作,操作完成之后根据返回值决定是否需要提交,返回true网页提交,false则不提交.

 1<script language="javascript">   
 2function clientoper()   
 3{   
 4//这里可以执行客户端操作,比如验证之类的   
 5//这里判断是否提交   
 6var result=window.confirm("您确认要提交吗?");   
 7if(result)   
 8{   
 9return true;   
10}   
11else   
12{   
13return false;   
14}   
15}   
16</script>

方法也很简单,相信朋友们一看就明白了,说到这有朋友问了,可这只适用于HtmlButton,按钮,多死板,如果想用图片做按钮怎么办,方法当然有,也不需要修改什么,研究一下按钮的css样式就满足你的需要了!

好了,如果有不明白的地方,我们再一起探讨,也祝大家的程序生活多姿多彩!

Published At
Categories with Web编程
Tagged with
comments powered by Disqus