^_^
本来对html控件,服务器控件的知识模模糊糊的。今天特地查了相关的知识。
下面是我写代码总结的。
这些事件 主要用于在客户端执行验证,然后决定是否执行服务端事件 (没接触之前就为此纳闷呢,now豁然开朗)
假设:若输入框里的 字符长度 >1 and <5 的话,就会执行服务器端的代码。
js:
<script type="text/script">
function abc()
{
var len=document.getElementById("text").value; //得到text里的值
if(a.length>1 && a.length<5)
return ture;
else
{
alert('长度必须大于1小于5');
return fasle;
}
}
</script>
1. onclick ,onclientclick 事件 使用 (html控件定义为 runat='server'使用)
如: <input type="button" onclick="javascript:if(abc())" onserverclick="后台事件" runat="server" />
注意 : onclick 里的写法 javascript:if(abc()) 结束时候无分号 .
2. onclick ,onclientclick 事件
<asp:button id="bt" onclick="bt_click " onclientclick="return abc() ;" runat="server"> // renturn true 则执行 服务端事件;否则
不执行
3.
后台pageload 方法中添加 前台的onclick 事件
protected void Page_Load(object sender, EventArgs e)
{
btt.Attributes.Add("onclick", "javascript:if(document.getElementById('text').value.length>5);else {alert('length小于5了');return false;}");
}
OnClientClick() 控制客户端提交。
例如可以使用confirm('是否执行?')
return true:执行OnClick事件。
return false:什么都不干。
再得来说:
OnClientClick是调用客户端的事件,OnClick是调用服务器端的事件,当点击button时,先触发OnClientClick事件再触发OnClick事件
一般我们用 OnClientClick验证我们的提交数据,但是这个一定要返回ture或者false,即一定要加上return,否则OnClick失效。当返回false时OnClick服务器端事件才被中止,当你的js验证有错误,也会跳过验证,直接执行服务器端事件OnClick。为了避免这样的错误,可以考虑用服务端验证这样就省去了OnClientClick事件,就不用考虑和OnClick的冲突了。但是从性能上,服务端验证,耗费了服务器资源,呵呵,一般是没问题的,只是和客户端验证比较而已,各有所长,各有所短。