代码如下,在js中怎么获取lable的id 呢?
<asp:Repeater runat="server" OnItemDataBound="rptList_OnItemDataBound">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<tr>
<td><asp:Label runat="server" id="lblName"></td>
</tr>
</ItemTemplate>
</asp:Repeater>
忘记具体的操作了,你可以试下:lblName.ClientID这个属性,或者搜索一下类似的属性或方法。
假如有这个属性,将返回该控件的唯一HTML的ID,这样就可以在输出的JS里使用了。
嗯,谢谢,问题解决了,在repeat 绑定的时候,找到这个控件,然后用clientID属性,你说的是对的
按F5运行后生成的HTML代码是什么样的?主要是看最终生成的label元素的ID,有了ID后就很方便获取了
运行后Lable变成span ,其中id变成了rptList_ctl01_lblName,但是中间的ctl01很可能是变化的
查看运行后的源文件,id变化了,因为这个label嵌套在repater服务器控件中
这样写好像不行,他用的是服务器控件,在运行后id会变的
@artwl: 我以前服务器控件都是这样写的,没有用ClientID都可以的,jquery不用ClientID都行。
@荒野的呼唤: 在REPEATER、DATALIST、DATAGRID等控件里,这个LBLNAME会不唯一。而楼主的目标可能需要唯一的。
另外,从安全的角度触发,你的这个方案也不可取,能获得绝对的ID,干吗不使用?你的这个方案是没办法获取的情况下的权宜之计,虽然,在某些情况下也是能达到目的的。只是,从程序员的角度来说不好。
当然,在.NET里,还可以限制服务器端控件在输出的时候只输出自己的ID,而不与容器ID关联。假如不是这样,当控件ID里融入了容器ID后。。。问题就不可行了。
@笨笨蜗牛: 不用ClientID,获得的ID不是唯一的??????
jquery是很方便,但是不太会用
谢谢大家,问题解决了
如果你要想获取他的值你有两种方法
一种就是当页面生成成功,查看他的源代码 document.getelementby("id")获取它的值
第二种也差不 拖一个隐藏域,在后台把控件值赋值给hidd之后在前台document.geteleby("hiddid")的值就可以,
看你主要为了实现怎么样的功能!!!
<asp:Repeater ID="Repeater1" runat="server"></asp:Repeater>
<script type="text/javascript">
alert('<%=Repeater1.ClientID %>');
</script>