很多时候我们需要在JS中对服务器端控件进行一些简单处理,但是这个时候没有必要回发到服务器,让服务器去处理,这个时候就又要用到JS了

那么怎么去获取这个服务器端控件呢?我们知道服务器最终返回到用户界面的其实就是一个HTML文件,所有的服务器控件最后都成为了普通意义上的HTML,必须TEXTBOX会成为一个<input type="text"....>这个时候,服务器端同样会给该HTML标签加上一个ID,以前写JS来获取这个ID 的时候常常就是用的这个ID,但是我们却不能总是用这个办法来获得?比如FORMVIEW控件,最后到了用户这里,就成为了一个TABLE标签,再使用标签模板里面的TEXTBOX啊,DROPDOWNLIST啊,这就麻烦了,ID会是这个样子:**_formview1_****_******,但是这个ID值是确定的吗?这个我不清楚,但是我清楚的一点是:这样做肯定不稳定。

那么采用的方法有两个:

1、使用web控件的ClientID属性在前台JS中对后台控件进行绑定,如下:

function GetValue()
{
       var txdat=document.getElementById('<%=txtName.ClientID %>');

}

后面怎么用就不用说了吧?这样获取的服务器端ID才是正确而稳定的。

2、在服务器端注册一个JS脚本,在需要使用这个ID的时候再去注册,原因?页面对此回发到服务器之后,服务器控件的ID可能会发生变化,从而带来不可预知的结果,所以,在需要使用这个控件时向页面注册一段JS代码,然后在前台直接调用就OK了,例:

RegisterStartupScript("check", 
   "\n<script>\n" + 
   "function check()\n" + 
   "{\n" + 
   "   return alert(''" + txtName.ClientID.ToString() + "'');\n" + 
   "}\n" + 
   "</script>\n";

JS获取服务器端控件ID的更多相关文章

  1. 使用js获取checkbox控件在GridView中的第几行

    这次的知识点是如何使用js获取checkbox控件所在的是第几行!!! 我们可以使用 JavaScript 中自带的 rowIndex 和 cellIndex 来获取行和列的键值 (从0开始) 这两个 ...

  2. JS获取用户控件中的子控件Id

    用户控件 <asp:HiddenField ID="hfGradeId" runat="server" /> <asp:HiddenField ...

  3. 页面获取Web控件ID不能正常获取,它惹得祸

    今天碰到个比较奇葩的问题,因为动了一下目标框架,又原来的4.5.1改为3.5,然后又改回来了4.5.1,结果运行项目的时候发现界面js的计算,不能正常获值计算. 于是就开始找问题呗,先是发现这个二手项 ...

  4. JS 获取Button控件的提交类型

    <script type="text/javascript"> <!--获取button控件的类型---> function isAuditOrCancel ...

  5. Jquery获取服务器端控件的三种方式

    一 Jquery获得服务器控件值的方法由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法: 服务器控件代码:<as ...

  6. js获取file控件的完整路径(上传图片预览)

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  7. Asp.Net 之 js/jquery获取服务器端控件

    由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,总结有以下3种方法:服务器控件代码:<asp:TextBox ID="txtUserID& ...

  8. JS 获取FileUpload1控件地址

    function openList() { //判断浏览器类型 var isIE = (document.all) ? true : false; ); ); ); var path = " ...

  9. asp.net js获取控件ID

    ClientID是由ASP.Net生成的服务器控件得客户端标识符,当这个控件生成到客户端页面的时候,在客户端代码访问该控件时就需要通过ClientID来访问. 以文本框为例: 一.未使用母版页 js可 ...

随机推荐

  1. apache httpd 2.4 httpd

    This is a wiki containing user-contributed recipes, tips, and tricks for the Apache HTTP Server (aka ...

  2. mktemp temp race attack 临时文件隐患

    /tmp  安全隐患 -/tmp   在家目录  程序目录下 创建 临时文件

  3. mysql 查询语句去重 通过sql去重

    url 在表中具有唯一性: 由于定时任务的多进程/代码的多线程/定时任务的调度/脚本的执行时间,导致,破坏了唯一性: SELECT COUNT(1) FROM test_error_tmpUNION ...

  4. scikit-learn(1) 第一个例子说明

    第一个 scikit-learn例子 ................................................................................. ...

  5. Linux系统下安装和使用rz、sz命令

    1.软件安装 1)编译安装 root 账号登陆后,依次执行以下命令: cd /tmp wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz ...

  6. 并不对劲的loj2179:p3714:[BJOI2017]树的难题

    题目大意 有一棵树,\(n\)(\(n\leq2*10^5\))个点,每条边\(i\)有颜色\(w_i\),共有\(m\)(\(m\leq n\))种颜色,第\(i\)种颜色的权值是\(c_i\)(\ ...

  7. hdu2089(数位DP 递推形式)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. C++实现用两个栈实现队列

    /* * 用两个栈实现队列.cpp * * Created on: 2018年4月7日 * Author: soyo */ #include<iostream> #include<s ...

  9. 【WIP】Ruby JSON

    创建: 2018/03/22 以后有空补上 注: JSON.generate 参数只能是Obejct或者Array, 不可以是Hash https://docs.ruby-lang.org/ja/la ...

  10. 通过实现ServletContextListener接口创建数据库连接池(C3P0方式)

    使用Listener步骤 1. 定义Listener实现类 2. 在web.xml中配置(或使用Annotation) 使用C3P0方式创建数据库连接池需要添加的jar包 1.c3p0-0.9.5.j ...