关于在ASP.NET中使用JavaScript的建议
一个很恼人的情况,就是当你使用JS在一个ASP,NET应用程序中引用一个在模板页初始化的服务器控件的时候:
比如,我们在模板页有一个TextBox的服务器控件,而且我们想要去获取他的Text;如果你使用document.getElementById(‘controlId’)来获取,你将得到"object expected" 或者 "object is null;"的错误提示。ID没错,JS语法没错,为什么会出现这样的错误呢?
事实是这样的,服务器控件在运行时的ID是变化的,而且他们会被添加一个包围他们的容器的前缀,不信的话,可以在运行的时候,打开前台的HTML代码,查看是否那个服务器控件的ID已经改名了。
针对这个问题,下面给出两个方法:
方法1:利用运行时候,查看并记录该控件在HTML显示页面的ID;然后就可以使用JS的
document.getElementById('id');方法获取。但是这种方法很低级而且不灵活。
方法2:使用代码获取新的ID,ASP.NET的任何服务器控件都包含一个ClientID属性,可以利用这个属性来获取运行时的控件ID,但是我们想要使用JS来获取这个ID,所以,我们可以这样做:
var txtBox = document.getElementById('<%=txtName.ClientID%>');
<%=%>这个标记里面可以书写C#代码的,会不会觉得这个方法既简单又灵活呢?
如果你想调试你的JS代码,不知道怎么做?下面给你介绍方法:
可以把你的JS代码放在一个单独的JS文件中,这样你就可以在JS代码中插入断点,接着启用IE的JavaScript调试功能,下面是启用步骤:
在“工具”菜单中选择Internet选项,“高级”选项卡,

,插入你的断点,按F5就可以调试了~~~
声明:文章还有附带的源码或者文件,一切解释权都决定于The Code Project Open License (CPOL)
关于作者:Ahmed_Said
来着:Software Developer Asset Technology Group
国家:Egypt Egypt
文章来源:http://www.codeproject.com/Articles/108378/Tips-about-using-JavaScript-in-Asp-Net
译者:本人
关于在ASP.NET中使用JavaScript的建议的更多相关文章
- ASP.NET中使用JavaScript实现图片自动水平滚动效果
参照网上的资料,在ASP.NET中使用JavaScript实现图片自动水平滚动效果. 1.页面前台代码: <%@ Page Language="C#" AutoEventWi ...
- Asp.net中前台javascript与后台C#交互
方法一:使用Ajax开发框架,后台方法定义前添加[AjaxPro.AjaxMethod],然后就可以在前台js脚本中调用后台C#函数. 方法二:后台方法声明为public或者protected,然后前 ...
- asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结
通常javascript代码可以与HTML标签一起直接放在前 端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿:所以一般有良好开发习惯的程序员都会把 ...
- ASP.NET 中整合JavaScript的技巧
尽管ASP.NET提供了一个强壮的平台,但是开发者也不应忽视诸如JavaScript这样成熟的技术.在这篇文章中,Tony Patton将向您解释在Web开发中如何将JavaScript与ASP.NE ...
- ASP.NET中异常处理的注意事项
一.ASP.NET中需要引发异常的四类情况 1.如果运行代码后,造成内存泄漏.资源不可用或应用程序状态不可恢复,则引发异常.Console这个类中,有很多类似这样的代码: if ((value < ...
- Asp.net中后台C#数组与前台Javascript数组交互
摘自:http://blog.csdn.net/a6225301/article/details/20003305 在上一篇<asp.net中javascript与后台c#交互>中实现了前 ...
- 【转载】Asp.Net中使用基于jQuery的javascript前台模版引擎JTemplate
JTemplate是基于jQuery的开源的前端模版引擎,在Jtemplate模板中可以使用if判断.foreach循环.for循环等操作,使用Jtemplate模板优点在于ajax局部刷新界面时候不 ...
- asp.net中javascript与后台c#交互
asp.net中javascript与后台c#交互 作者:熊猫大叔 字体:[增加 减小] 类型:转载 时间:2015-10-23我要评论,出处:http://www.jb51.net/article/ ...
- (二)ASP.NET中JavaScript的中英文(多语言)实现方案(二)
在ASP.NET中JavaScript的中英文(多语言)实现方案中简单的介绍了js实现多语言的一种方案.下面将要讲述另外一种方法,尽管很相似,但是有些地方也是需要细细琢磨的,不说了,先看看. 在Lan ...
随机推荐
- 【CF896D】Nephren Runs a Cinema 卡特兰数+组合数+CRT
[CF896D]Nephren Runs a Cinema 题意:一个序列中有n格数,每个数可能是0,1,-1,如果一个序列的所有前缀和都>=0且总和$\in [L,R]$,那么我们称这个序列是 ...
- R序列seq
> seq(from=10,to=20,by=3) [1] 10 13 16 19 > seq(from=10,to=20,length=5) [1] 10.0 12.5 15.0 17. ...
- C3P0连接池配置(C3P0Utils.java)
配置文件 c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3p0-confi ...
- python----并发之协程
<python并发之协程>一: 单线程下实现并发,即只在一个主线程,并且cpu只有一个的情况下实现并发.(并发的本质:切换+保存状态) cpu正在运行一个任务,会在两种情况下切去执行其他的 ...
- Python装饰函数
from time import ctime, sleep def tsfunc(func): def wrappedFunc(): print('[%s] %s() classed' % (ctim ...
- Hive之import和export使用详解
在hive-0.8.0后引入了import/export命令. Export命令可以导出一张表或分区的数据和元数据信息到一个输出位置,并且导出数据可以被移动到另一个hadoop集群或hive实例,并且 ...
- Linux free命令详解
前段时间有个项目的用C写的,性能测试时发现内存泄露问题.关于怎么观察内存使用问题,free是很好用的一个命令. 参数讲解 bash-3.00$ freetotal used f ...
- $w=$mysqli->query($sql);
$db = new mysqli('localhost', 'root', '', 'w'); if($db->connect_error){ die('Connect Error ( '.$d ...
- hmm三个问题
现在,重点是要了解并解决HMM 的三个问题. 问题1,已知整个模型,我女朋友告诉我,连续三天,她下班后做的事情分别是:散步,购物,收拾.那么,根据模型,计算产生这些行为的概率是多少. 问题2,同样知晓 ...
- LoadRunner-关联报错(解决方法一)
Action.c(153): Error -35061: No match found for the requested parameter "CorrelationParameter_3 ...