首页 新闻 会员 周边 捐助

js中获取repeater里控件id

0
悬赏园豆:5 [已解决问题] 解决于 2012-05-18 17:15

代码如下,在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>   

blncle的主页 blncle | 初学一级 | 园豆:183
提问于:2012-05-18 14:28
< >
分享
最佳答案
0

忘记具体的操作了,你可以试下:lblName.ClientID这个属性,或者搜索一下类似的属性或方法。

假如有这个属性,将返回该控件的唯一HTML的ID,这样就可以在输出的JS里使用了。

收获园豆:5
无之无 | 大侠五级 |园豆:5095 | 2012-05-18 14:41

嗯,谢谢,问题解决了,在repeat 绑定的时候,找到这个控件,然后用clientID属性,你说的是对的

blncle | 园豆:183 (初学一级) | 2012-05-18 17:12
其他回答(5)
0

按F5运行后生成的HTML代码是什么样的?主要是看最终生成的label元素的ID,有了ID后就很方便获取了

草根程序猿 | 园豆:129 (初学一级) | 2012-05-18 14:30

运行后Lable变成span ,其中id变成了rptList_ctl01_lblName,但是中间的ctl01很可能是变化的

支持(0) 反对(0) blncle | 园豆:183 (初学一级) | 2012-05-18 17:10
0

查看运行后的源文件,id变化了,因为这个label嵌套在repater服务器控件中

xu_happy_you | 园豆:222 (菜鸟二级) | 2012-05-18 14:41
0
悟行 | 园豆:12559 (专家六级) | 2012-05-18 14:54

这样写好像不行,他用的是服务器控件,在运行后id会变的

支持(0) 反对(0) artwl | 园豆:16736 (专家六级) | 2012-05-18 14:56

@artwl: 我以前服务器控件都是这样写的,没有用ClientID都可以的,jquery不用ClientID都行。

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-05-18 14:58

@荒野的呼唤: 在REPEATER、DATALIST、DATAGRID等控件里,这个LBLNAME会不唯一。而楼主的目标可能需要唯一的。

另外,从安全的角度触发,你的这个方案也不可取,能获得绝对的ID,干吗不使用?你的这个方案是没办法获取的情况下的权宜之计,虽然,在某些情况下也是能达到目的的。只是,从程序员的角度来说不好。

 

当然,在.NET里,还可以限制服务器端控件在输出的时候只输出自己的ID,而不与容器ID关联。假如不是这样,当控件ID里融入了容器ID后。。。问题就不可行了。

支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2012-05-18 15:04

@笨笨蜗牛: 不用ClientID,获得的ID不是唯一的??????

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-05-18 15:07

jquery是很方便,但是不太会用

支持(0) 反对(0) blncle | 园豆:183 (初学一级) | 2012-05-18 17:13

谢谢大家,问题解决了

支持(0) 反对(0) blncle | 园豆:183 (初学一级) | 2012-05-18 17:14
0

如果你要想获取他的值你有两种方法

一种就是当页面生成成功,查看他的源代码 document.getelementby("id")获取它的值

第二种也差不 拖一个隐藏域,在后台把控件值赋值给hidd之后在前台document.geteleby("hiddid")的值就可以,

看你主要为了实现怎么样的功能!!!

KyrieYang | 园豆:205 (菜鸟二级) | 2012-05-18 15:46
0

<asp:Repeater ID="Repeater1" runat="server"></asp:Repeater>
<script type="text/javascript">
alert('<%=Repeater1.ClientID %>');
</script>

.! | 园豆:402 (菜鸟二级) | 2012-05-18 17:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册