如何编写JavaScript脚本,在客户端获取或变更服务器端控件的值及ID
来源:互联网 发布:网络信息安全报告 编辑:程序博客网 时间:2024/05/01 03:36
以前编写asp网页时,当我们需要在脚本里访问页面内一个对象的时候,一般都是通过对象的id或name。就像这样——
<!--Test.html-->
// ...
function getText()
{
return document.form1.Text1.value; // Text1就是对象的id
}
// ...
<INPUT id="Text1" type="text" ...>
现在随着ASP.NET的发展,让我们越来越习惯使用服务器端控件TextBox作为用户输入的途径。如果我们想在客户端脚本里访问一个TextBox,原先的做法就行不通了——
<!--Test.aspx-->
// ...
function getText()
{
return document.form1.Text1.value; // Text1还是对象的id?
}
// ...
<asp:TextBox id="Text1" .../>
浏览页面时,会有一个脚本错误——“Text1对象不存在”。原因就在于,Text1作为服务器端控件TextBox,在被发送到客户端之前,先由.NET Framework进行转换,而它的id显然也是转换的一部分。
比如:在一aspx文件中,由ID=Content1的服务器端控件Content,在此Content控件中有ID=TextBox_bdj1的服务器端控件TextBox。此aspx网页发送到客户端后,服务器端控件TextBox得ID将转换为"ctl00_ContentPlaceHolder1_TextBox_bdj1"。在客户端javascript中用document.getElementById(this.TextBox_bdj1)将不能查找到服务器端控件TextBox。
虽然,我们可以在aspx.cs文件中用C#查找并获取服务器端控件TextBox的ID和值,但这将增加服务器端的开销,那么如何在不增加服务器端开销的情况下,用客户端的javascipt来进行以上操作呢?
下面,我将举例说明
在一aspx文件中,有三个服务器端控件TextBox,ID分别为TextBox_bdj1,TextBox_bdj2,TextBox_pjdj
目的:在客户端,用javascript获取TextBox_bdj1,TextBox_bdj2,的平均值,并赋予TextBox_pjdj
1、在aspx.cs文件中为服务器控件TextBox_bdj1,TextBox_bdj2添加OnKeyUp事件,调用客户端脚本函数getAveragePrice(),在page_load事件中添加如下代码(位于isPostBack判断之外)
- this.TextBox_bdj1.Attributes.Add("OnKeyUp", "getAveragePrice()");
- this.TextBox_bdj2.Attributes.Add("OnKeyUp", "getAveragePrice()");
2、在aspx文件中添加如下客户端脚本
- <script language="javaScript" type="text/javascript">
- function getAveragePrice()
- {
- var txtbox_bdj1=document.getElementById("<%=this.TextBox_bdj1.ClientID %>").value;
- var txtbox_bdj2=document.getElementById("<%=this.TextBox_bdj2.ClientID %>").value;
- if (txtbox_bdj2 =="" && txtbox_bdj1 !=="")
- {
- document.getElementById("<%=this.TextBox_pjdj.ClientID %>").value=Math.round(txtbox_bdj1*Math.pow(10,2))/Math.pow(10,2); //四舍五入,保留2位小数
- }
- else
- {
- if (txtbox_bdj1 =="" && txtbox_bdj2 !=="")
- {
- document.getElementById("<%=this.TextBox_pjdj.ClientID %>").value=Math.round(txtbox_bdj2*Math.pow(10,2))/Math.pow(10,2);
- }
- else
- {
- document.getElementById("<%=this.TextBox_pjdj.ClientID %>").value=Math.round(((parseFloat(txtbox_bdj1)+parseFloat(txtbox_bdj2))/2)*Math.pow(10,2))/Math.pow(10,2);
- }
- }
- }
- </script>
- 如何编写JavaScript脚本,在客户端获取或变更服务器端控件的值及ID
- 客户端的JavaScript脚本中获取服务器端控件的值 及ID
- .NET中获取服务器端控件的ID进行客户端编程
- .NET中获取服务器端控件的ID进行客户端编程
- .net中如何在服务器端获取客户端的html标签控件。
- JavaScript 控件的客户端ID
- 从服务器端获取的图片放在客户端的控件上如何等比例裁切且不失真
- 服务器端获取客户端的html标签控件
- 如何获取taskflow的id值,用于控制当前页面的控件显示或隐藏
- 服务器端控件使用客户端脚本
- 服务器端控件使用客户端脚本
- 在客户端获取服务器端的时间
- 如何在fragment中获取自定义view的控件id
- 如何在fragment中获取自定义view的控件id
- 怎样用javascript给控件赋值,使在服务器端得到此控件的值?或怎样将前台的(或js)中的值传递到后台
- 如何在UltraEdit中编写javascript脚本
- 如何在UltraEdit中编写javascript脚本
- 当使用母版页时JavaScript客户端获取服务器控件的Id
- c#数据类型基础
- Myeclipse7.0的SVN插件安装问题
- 【zz】亲历华尔街--告诉你一个真实的美国财富传奇
- tomcat安装时出现Failed to install Tomcat6 service 的解决办法
- Struts1.X 开发原理、流程(自己总结)
- 如何编写JavaScript脚本,在客户端获取或变更服务器端控件的值及ID
- 申请查账征收
- LINUX
- Url Rewriting Using ASP.NET MVC Framework
- 键树的应用
- vc++与YACC和LEX集成环境
- 下一个是啥?1, 2, 6, 42, 1806, ???
- ASP.NET程序中常用的三十三种代码
- Intelligencia.UrlRewriter.dll aspx重写为html实例(asp.net 2.0)