日期:2014-05-17  浏览次数:20424 次

Js获取asp.net服务器控件ID 你们都是怎么获取的
本帖最后由 u010212550 于 2013-04-08 18:37:08 编辑
asp服务器控件 页面运行之后服务器控件ID都改变了  document.getElementById()你所设的ID值获取不了

在网上看到的几种方法
1.运行页面查看源代码  复制ID      //不可取
2.document.getElementById("<%=buttn.ClientID%>")       //只能在页面上js代码获取 js文件里边获取不了 
3.在后台注册方法 把所需要的ID全部当参数传进去 
  Button1.Attributes["click"] = "Button_click(" + txt1.ClientID + "," + txt1.ClientID + "," + txt.ClientID + ");";
还有一种根据节点  这种更纠结


ASP.NET JavaScript

------解决方案--------------------
引用:
服务器控件生成的HTML标签ID有些是会变的   document.getElementById("<%=btn.ClientID%>"); 只能在页面中的js脚本才可以获取  在js文件夹里边的js文件里的代码<%%>这个东西是没用的


那你在相应的引用页面写这样的方法
function GetBtnId(){
   return document.getElementById("<%btn.ClientID%>").id;
}

在引用的文件里面方法直接这样写
function Alert(){
  var id = GetBtnId();
}
------解决方案--------------------
既然独立出来一个js文件,就不应该直接引用html代码里的ID
------解决方案--------------------
一般不用ID操作,都是用jquery的类选择器或标签选择器
如果想用ID操作,还不想用你说过的方法,那就建议转换思路,用微软标准的解决方法--动态注册js文件代码
this.Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(),"$(function() {$('#pl_dialog').dialog('open');$('#lbl_info').text('原密码错误!');});", true);