日期:2014-05-20  浏览次数:20397 次

如何在javascript中使用asp.net生成的控件ID
小弟看到一个下拉列表框联动的例子。
http://www.knowsky.com/336545.html

在实现的时候遇到问题:
原来的例子,是在.aspx直接使用控件,代码如下:
<SELECT   id= "province "   runat= "server "   NAME= "province "> </SELECT>
生成的HTML如下:
<select   name= "province "   id= "province "> </select>

我实现的时候,使用了web用户控件(.ascx),控件中的代码跟上面的相同,
生成的HTML:
<select   name= "CtrlUserCenter1:_ctl0:province "   id= "CtrlUserCenter1__ctl0_province "> </select>

例子的javascript需要用到控件的ID,其中的一段代码如下:
for(i=0;i <s.length-1;i++)
    document.getElementById(s[i]).onchange=new   Function( "change( "+(i+1)+ ") ");

但是现在生成的ID却差别太多。
怎么办?

从.net方面下手的话怎么办?
从javascript方面下手的话怎么办?



------解决方案--------------------
var id = " <%=this.province.ClientID%> ";
------解决方案--------------------
cpp2017(慕白兄)的办法不错,呵呵
在用户控件中,
<select name= "CtrlUserCenter1:_ctl0:province " id= "CtrlUserCenter1__ctl0_province "> </select>
<script language=javascript>
var provinceId = " <%=this.province.ClientID%> ";
</script>

但是ASPX中这个控件要写在用到控件的ID的代码之前。


------解决方案--------------------
cs文件写province.ClientID可以获得该控件客户端id
js中写obj=document.getElementById( ' <%=province.ClientID %> ');
------解决方案--------------------
同解 cpp2017(慕白兄)的