在运行时获取用户控件中的用户控件ID

时间:2011-03-22 09:20:31

标签: javascript jquery asp.net user-controls

是否可以使用javascript或jquery从控件中获取分配给User Control的ID。

由于

3 个答案:

答案 0 :(得分:2)

你可以在usercontrol上放一个类,然后使用类似$(“。myUC”)的东西.attr(“id”)

答案 1 :(得分:2)

ASP.NET通常做的是在控件的ID前面添加一个字符串,用于确定实际控件所在的ASP.NET控件树中的位置。

考虑到这一点,我通常做的是使用jQuery的'ends with'选择器在运行时获取完整的ASP.NET解析ID。

类似的东西:

// get a handle on your original control
var myControl = $('[id$="<myOriginalId>"]');
// and then access it's properties
var myRuntimeId = myControl.eq(0).attr('id');

正如您可能想象的那样,当您使用在表单的不同位置使用相同ID的UserControl时,不会削减它。我只是跳进去并在那里进行一些调整(可能使用.eq()函数)以满足我的业务需求。

答案 2 :(得分:1)

这可能会帮助您从不同的角度来看待它: 在.Net中,您可以使用myControl.ClientID获取生成的ID。

如果你把它放在一个javascript变量中 - 我知道它不整齐 - 你可以轻松地获取它。

<!--mypage.aspx-->
<script>
  var myIdVar = "<%=myControl.ClientID%>";
  if(myIdVar == "foo")
  {
    alert("bar");
  }
</script>