一个很恼人的情况,就是当你使用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. 用AT命令调试调制解调器

    最早生产调制解调器的公司是贺氏,后来组建的厂家制造的调制解调器都与HAYES兼容,大部分的通信软件使用菜单来对调制解调器进行配置.检测.但是有些通信软件要求用户直接发命令给调制解调器,在这种情况下必须 ...

  2. 【CF662A】Gambling Nim 线性基

    [CF662A]Gambling Nim 题意:n长卡牌,第i张卡牌正面的数字是$a_i$,反面的数字是$b_i$,每张卡牌等概率为正面朝上或反面朝上.现在Alice和Bob要用每张卡牌朝上的数字玩N ...

  3. Pexpect学习:

    pexecpt run用法:格式:run(command,timeout=-1,withexitstatus=False,events=None,extra_args=None,logfile=Non ...

  4. ArchLinux 添加国内镜像源

    $ vim /etc/pacman.d/mirrorlist # 在最前面添加一行,这样就成功添加了网易的源: Server = http://mirrors.163.com/archlinux/$r ...

  5. 关注被关注表设计-UserFollowMapping

    -- ---------------------------- -- Table structure for UserFollowMapping -- ------------------------ ...

  6. 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 ...

  7. HDU_6033_Add More Zero

    Add More Zero Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  8. Effective Objective-C 笔记之熟悉OC

    1.在一个类的头文件中尽量少引用其他头文件 如果Person.h 引入了EmployeePerson.h,而后续又有其他类如Human.h又引入了Person.h, 那么EmployeePerson. ...

  9. Python实现简单HTTP服务器(一)

    一.返回固定内容 # coding:utf-8 import socket from multiprocessing import Process def handle_client(client_s ...

  10. java内存区域-方法区

    方法区(Method Area)与java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息.常量.静态变量.即时编译器编译后的代码等数据.虽然java虚拟机规范把方法区描述为堆的一个 ...