一个很恼人的情况,就是当你使用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的建议的更多相关文章

  1. ASP.NET中使用JavaScript实现图片自动水平滚动效果

    参照网上的资料,在ASP.NET中使用JavaScript实现图片自动水平滚动效果. 1.页面前台代码: <%@ Page Language="C#" AutoEventWi ...

  2. Asp.net中前台javascript与后台C#交互

    方法一:使用Ajax开发框架,后台方法定义前添加[AjaxPro.AjaxMethod],然后就可以在前台js脚本中调用后台C#函数. 方法二:后台方法声明为public或者protected,然后前 ...

  3. asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结

    通常javascript代码可以与HTML标签一起直接放在前 端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿:所以一般有良好开发习惯的程序员都会把 ...

  4. ASP.NET 中整合JavaScript的技巧

    尽管ASP.NET提供了一个强壮的平台,但是开发者也不应忽视诸如JavaScript这样成熟的技术.在这篇文章中,Tony Patton将向您解释在Web开发中如何将JavaScript与ASP.NE ...

  5. ASP.NET中异常处理的注意事项

    一.ASP.NET中需要引发异常的四类情况 1.如果运行代码后,造成内存泄漏.资源不可用或应用程序状态不可恢复,则引发异常.Console这个类中,有很多类似这样的代码: if ((value < ...

  6. Asp.net中后台C#数组与前台Javascript数组交互

    摘自:http://blog.csdn.net/a6225301/article/details/20003305 在上一篇<asp.net中javascript与后台c#交互>中实现了前 ...

  7. 【转载】Asp.Net中使用基于jQuery的javascript前台模版引擎JTemplate

    JTemplate是基于jQuery的开源的前端模版引擎,在Jtemplate模板中可以使用if判断.foreach循环.for循环等操作,使用Jtemplate模板优点在于ajax局部刷新界面时候不 ...

  8. asp.net中javascript与后台c#交互

    asp.net中javascript与后台c#交互 作者:熊猫大叔 字体:[增加 减小] 类型:转载 时间:2015-10-23我要评论,出处:http://www.jb51.net/article/ ...

  9. (二)ASP.NET中JavaScript的中英文(多语言)实现方案(二)

    在ASP.NET中JavaScript的中英文(多语言)实现方案中简单的介绍了js实现多语言的一种方案.下面将要讲述另外一种方法,尽管很相似,但是有些地方也是需要细细琢磨的,不说了,先看看. 在Lan ...

随机推荐

  1. IDEA安全编码组件

    import java.io.UnsupportedEncodingException;import java.security.Key;import java.security.Security; ...

  2. [转][darkbaby]任天堂传——失落的泰坦王朝(中)

    TV游戏产业历史上曾有过太多表里不一的外交辞令,然而当年SQUARE和任天堂分道扬镳的真正原因确实如坂口博信在1996年2月29日的PS版 <FFVII>发表会上宣称的那样:“虽然之前有过 ...

  3. thinkphp---Excel导入!

    在做项目的时候,很多时候会遇到需要将excel导入到数据库的操作: 需要用到Excel类: 下载地址: https://gitee.com/meiyouzhanghao/excel 位置:Thinkp ...

  4. 扩展Spring切面

    概述 Spring的切面(Spring动态代理)在Spring中应用十分广泛,例如还有事务管理,重试等等.网上介绍SpringAop源码很多,这里假设你对SpringAop有基本的了解.如果你认为Sp ...

  5. 处理 Java Tomcat 的“Cannot allocate memory”错误

    参考:https://www.cnblogs.com/rabbitpei/p/6738671.html 启动tomcat报错如下 临时生效 echo 1 > /proc/sys/vm/overc ...

  6. PAT甲1101 Quick Sort

    1101 Quick Sort (25 分) There is a classical process named partition in the famous quick sort algorit ...

  7. Anaconda安装教程+Tensorflow教程

    Anaconda安装 1.拿到安装包,点击安装 2.下一步 3.下一步 4.下一步 5.下一步 6.下一步 7.更改文件显示路径 ctrl+f查找 # The directory to use for ...

  8. apparmor 引起自定义mysql 日志问题

    今天手贱,看到mysql 的日志在/var/log/mysql下面.总是觉得别扭,于是就想改变日志的位置, 本人开发环境 vagrant  + ubuntu12.04 ,在/etc/mysql/mys ...

  9. centos7 安装ftp

    安装VSFTPD 1.首先确认系统内无VSFTPD. rpm -qa|grep vsftpd 若有的话会显示vsftpd-x.x.x.-x.xxx.x86_64 若没有的话会空返回 2.安装VSFTP ...

  10. GET、POST编码问题

    GET请求.POST经常会出现中文乱码的问题,最好约定前后端的编码,一般为UTF-8.但是这里面也是有坑的. 后端设置编码为UTF-8的推荐方式: SpringMVC配置过滤器: <filter ...