服务器端控件使用客户端脚本
2008-04-28 09:51
253 查看
我们做项目经常遇到一个服务器控件,既有服务器端的事件,又要结合客户端脚本,这里介绍几个好用的结合方式。
比如,我们页面上有一个 按钮Button1,我们要实现当用户点击这个按钮的时候,先跳出确认的对话框,“您确定要按吗?”(或者其他的提示信息,这里只是举例),如果用户点击 了“取消”,则取消这个动作,如果点击了“确定”,则执行确定的动作,这里我们要输出“您按了按钮Button1”。
一般的客户端脚本要结合服务器控件可以直接在服务器控件的标签内写即可。比如鼠标移动到按钮上,按钮的背景颜色改变成红色,只要这样写:
<asp:Button id="Button1" Text="Button" onmouseover="this.style.backgroundcolor='red'" runat="server" />
但是如果要做到上面说的那个按钮的功能,所遇到的最大问题是OnClick事件已经被服务器端用掉了,如:
<asp:Button id="Button1" Text="Button" OnClick="ATest" runat="server" />
这样就执行了服务器端的代码。那如何加入客户端的onclick事件呢?最常见的做法是:
protected void Page_Load(object sender, EventArgs e) {
Button1.Attributes["onclick"]="javascript:return confirm('您确定要按吗?')";
}
protected void Button1_Click(object sender, EventArgs e) {
Response.Write("您按了按钮Button1");
}
如果客户端的代码没有这么简单,要复杂一点儿的话,比如,点击按钮的同时需要判断页面的某一个文本框是否有值,也可以改成如下格式:先写一个客户端脚本函数:
<script language="javascript">
function atest(){
if(form1.textbox1.value=="") { alert("您没有输入值"); return false; }
}
</script>
然后在.cs文件中调用:
protected void Page_Load(object sender, EventArgs e)
{
this.button1.attributes.add("onclick","javascript:return atest();");
}
还有第三种方式,就是直接在客户端脚本中写,.cs文件中不用写:
<script for="Button1" event="onclick()" language="javascript">
return confirm("您确定要按吗?");
</script>
比如,我们页面上有一个 按钮Button1,我们要实现当用户点击这个按钮的时候,先跳出确认的对话框,“您确定要按吗?”(或者其他的提示信息,这里只是举例),如果用户点击 了“取消”,则取消这个动作,如果点击了“确定”,则执行确定的动作,这里我们要输出“您按了按钮Button1”。
一般的客户端脚本要结合服务器控件可以直接在服务器控件的标签内写即可。比如鼠标移动到按钮上,按钮的背景颜色改变成红色,只要这样写:
<asp:Button id="Button1" Text="Button" onmouseover="this.style.backgroundcolor='red'" runat="server" />
但是如果要做到上面说的那个按钮的功能,所遇到的最大问题是OnClick事件已经被服务器端用掉了,如:
<asp:Button id="Button1" Text="Button" OnClick="ATest" runat="server" />
这样就执行了服务器端的代码。那如何加入客户端的onclick事件呢?最常见的做法是:
protected void Page_Load(object sender, EventArgs e) {
Button1.Attributes["onclick"]="javascript:return confirm('您确定要按吗?')";
}
protected void Button1_Click(object sender, EventArgs e) {
Response.Write("您按了按钮Button1");
}
如果客户端的代码没有这么简单,要复杂一点儿的话,比如,点击按钮的同时需要判断页面的某一个文本框是否有值,也可以改成如下格式:先写一个客户端脚本函数:
<script language="javascript">
function atest(){
if(form1.textbox1.value=="") { alert("您没有输入值"); return false; }
}
</script>
然后在.cs文件中调用:
protected void Page_Load(object sender, EventArgs e)
{
this.button1.attributes.add("onclick","javascript:return atest();");
}
还有第三种方式,就是直接在客户端脚本中写,.cs文件中不用写:
<script for="Button1" event="onclick()" language="javascript">
return confirm("您确定要按吗?");
</script>
相关文章推荐
- 服务器端控件使用客户端脚本
- 绝对酷,如何解决asp.net中javascript脚本的问题(使用服务器控件执行客户端脚本)
- 控件的隐藏和显示的,在客户端控件和服务器端控件的使用
- net5:自定义验证控件服务器端验证与客户端验证的使用
- 让服务器控件的事件同时执行客户端脚本和服务器端代码-转载
- 客户端的JavaScript脚本中获取服务器端控件的值 及ID
- 让服务器端控件同时执行客户端脚本和服务器端代码
- ModalPopupExtender控件主要有两种使用方式:客户端使用方式和服务器端使用方式
- 使用Fabric自动化安装zabbix服务器端和客户端,附安装脚本
- 用户控件中使用客户端脚本的控件名称问题
- 客户端的JavaScript脚本中获取服务器端控件的值 及ID
- 客户端的JavaScript脚本中获取服务器端控件的值 及ID
- 绝对酷,如何解决asp.net中javascript脚本的问题(使用服务器控件执行客户端脚本)
- 服务器控件使用客户端脚本
- 代码碎片(用户控件使用客户端脚本)
- 如何编写JavaScript脚本,在客户端获取或变更服务器端控件的值及ID
- 用户控件中使用客户端脚本的控件名称问题 (转)
- 使用shell脚本自动化安装Nagios服务器端和客户端
- [转] 客户端的JavaScript脚本中获取服务器端控件的值 及ID
- 使用__doPostBack函数来达到使用客户端的控件来调用服务器端的函数的--小结