关于在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 ...
随机推荐
- 用AT命令调试调制解调器
最早生产调制解调器的公司是贺氏,后来组建的厂家制造的调制解调器都与HAYES兼容,大部分的通信软件使用菜单来对调制解调器进行配置.检测.但是有些通信软件要求用户直接发命令给调制解调器,在这种情况下必须 ...
- 【CF662A】Gambling Nim 线性基
[CF662A]Gambling Nim 题意:n长卡牌,第i张卡牌正面的数字是$a_i$,反面的数字是$b_i$,每张卡牌等概率为正面朝上或反面朝上.现在Alice和Bob要用每张卡牌朝上的数字玩N ...
- Pexpect学习:
pexecpt run用法:格式:run(command,timeout=-1,withexitstatus=False,events=None,extra_args=None,logfile=Non ...
- ArchLinux 添加国内镜像源
$ vim /etc/pacman.d/mirrorlist # 在最前面添加一行,这样就成功添加了网易的源: Server = http://mirrors.163.com/archlinux/$r ...
- 关注被关注表设计-UserFollowMapping
-- ---------------------------- -- Table structure for UserFollowMapping -- ------------------------ ...
- HDU 3746 - Cyclic Nacklace & HDU 1358 - Period - [KMP求最小循环节]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3746 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- HDU_6033_Add More Zero
Add More Zero Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- Effective Objective-C 笔记之熟悉OC
1.在一个类的头文件中尽量少引用其他头文件 如果Person.h 引入了EmployeePerson.h,而后续又有其他类如Human.h又引入了Person.h, 那么EmployeePerson. ...
- Python实现简单HTTP服务器(一)
一.返回固定内容 # coding:utf-8 import socket from multiprocessing import Process def handle_client(client_s ...
- java内存区域-方法区
方法区(Method Area)与java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息.常量.静态变量.即时编译器编译后的代码等数据.虽然java虚拟机规范把方法区描述为堆的一个 ...