让服务器端控件同时执行客户端脚本和服务器端代码
2006-09-30 14:20
302 查看
让服务器控件的事件同时执行客户端脚本和服务器端代码
问题:
有时候我们需要一个服务器控件同时执行客户端脚本(如javascript)和服务器端代码。比如在进行表单验证的时候,希望先在客户端进行验证,只有通过验证才执行后台代码。这样可以避免不必要的postback,提供更好的用户体验。
解决方案:
在不同的地方分别注册客户端和服务器端事件处理函数。示例如下:
Web页面代码(仅HTML部分):
<HTML>
<HEAD>
<title>DoubleSidesHandler</title>
<script language="javascript">
function submitClientHandler()
{
var len = document.form1.txtName.value.length;
if(len < 3)
{
window.alert("required at least 3 letters!");
return false;
}
window.alert(document.form1.txtName.value);
return true;
}
function initHandler()
{
var elem = document.form1.btnSubmit;
if(elem)
{
elem.onclick = submitClientHandler;
}
}
</script>
</HEAD>
<body onload="initHandler()">
<form id="form1" method="post" runat="server">
Enter your name:
<asp:TextBox ID="txtName" Width="200px" Runat="server"></asp:TextBox>
<br>
<asp:Button ID="btnSubmit" Text="Submit" Runat="server" OnClick="SubmitServerHandler"></asp:Button>
</form>
</body>
</HTML>
后台代码(仅事件处理函数):
protected void SubmitServerHandler(object sender, System.EventArgs e)
{
Response.Write("hello!" + txtName.Text + "<br>");
}
分析:
这里客户端和服务器端的事件处理函数分别是submitClientHandler()和SubmitServerHandler()。submitClientHandler()在页面加载完成时(onload事件中)注册,这时才能获得对服务器控件的引用。SubmitServerHandler()在Button控件的OnClick属性中注册,这里注意该方法须声明为protected以上级别,这样才能在页面中访问。完成这两步注册后,页面会先后执行客户端和服务器端时间处理函数。
那么,怎么才能控制对服务器端代码的调用?看submitClientHandler()函数,如果返回false,那么就不执行SubmitServerHandler(),如果返回true,就会继续调用SubmitServerHandler()。
问题:
有时候我们需要一个服务器控件同时执行客户端脚本(如javascript)和服务器端代码。比如在进行表单验证的时候,希望先在客户端进行验证,只有通过验证才执行后台代码。这样可以避免不必要的postback,提供更好的用户体验。
解决方案:
在不同的地方分别注册客户端和服务器端事件处理函数。示例如下:
Web页面代码(仅HTML部分):
<HTML>
<HEAD>
<title>DoubleSidesHandler</title>
<script language="javascript">
function submitClientHandler()
{
var len = document.form1.txtName.value.length;
if(len < 3)
{
window.alert("required at least 3 letters!");
return false;
}
window.alert(document.form1.txtName.value);
return true;
}
function initHandler()
{
var elem = document.form1.btnSubmit;
if(elem)
{
elem.onclick = submitClientHandler;
}
}
</script>
</HEAD>
<body onload="initHandler()">
<form id="form1" method="post" runat="server">
Enter your name:
<asp:TextBox ID="txtName" Width="200px" Runat="server"></asp:TextBox>
<br>
<asp:Button ID="btnSubmit" Text="Submit" Runat="server" OnClick="SubmitServerHandler"></asp:Button>
</form>
</body>
</HTML>
后台代码(仅事件处理函数):
protected void SubmitServerHandler(object sender, System.EventArgs e)
{
Response.Write("hello!" + txtName.Text + "<br>");
}
分析:
这里客户端和服务器端的事件处理函数分别是submitClientHandler()和SubmitServerHandler()。submitClientHandler()在页面加载完成时(onload事件中)注册,这时才能获得对服务器控件的引用。SubmitServerHandler()在Button控件的OnClick属性中注册,这里注意该方法须声明为protected以上级别,这样才能在页面中访问。完成这两步注册后,页面会先后执行客户端和服务器端时间处理函数。
那么,怎么才能控制对服务器端代码的调用?看submitClientHandler()函数,如果返回false,那么就不执行SubmitServerHandler(),如果返回true,就会继续调用SubmitServerHandler()。
相关文章推荐
- 让服务器控件的事件同时执行客户端脚本和服务器端代码-转载
- 一个Buton控件如何先执行客户端代码后执行服务器端代码的应用!
- 服务器端控件使用客户端脚本
- Javascript脚本和asp.net验证控件同时验证的代码
- 点击button先执行js在执行后台代码客户端判断控件是否为空
- 绝对酷,如何解决asp.net中javascript脚本的问题(使用服务器控件执行客户端脚本)
- 客户端的JavaScript脚本中获取服务器端控件的值 及ID
- 一个ASP(JScript)简单SQL语句构建“类”,同时支持客户端和服务器端执行的
- 绝对酷,如何解决asp.net中javascript脚本的问题(使用服务器控件执行客户端脚本)
- Microsoft.web.ui treeview 中树型控件的选择,选中节点父子节点同时选中,解决客户端选择以后,在后台代码中无法得到选中节点的值
- 服务器控件执行客户端代码
- Javascript脚本和asp.net验证控件同时验证的代码
- 客户端的JavaScript脚本中获取服务器端控件的值 及ID
- 使用客户端脚本完成页面回传,执行服务器事件的同时,按钮呈灰色不可用状态
- ASP.NET验证控件客户端验证成功或失败之后执行js脚本(转)
- 客户端的JavaScript脚本中获取服务器端控件的值 及ID
- OnClientClick在服务器端执行客户端脚本。
- shell脚本实现同时多台远程主机执行命令的代码分享
- Javascript阻止服务器控件执行服务器端代码的问题
- 客户端事件和服务器端事件同时执行