如何获得正确的ClientID

时间:2011-05-17 13:17:51

标签: jquery asp.net

更新: asp.net

<asp:RadioButtonList runat="server" ID="rbl" RepeatDirection="Horizontal">
    <asp:ListItem Text="None" Value="0" Selected="True" Enabled="true" />
    <asp:ListItem Text="Float" Value="1" Selected="False" Enabled="true" />
    <asp:ListItem Text="Float1" Value="2" Selected="False" Enabled="true" />
    <asp:ListItem Text="Center" Value="3" Selected="False" Enabled="false" />
</asp:RadioButtonList>

当我查看源代码时,它就是呈现的内容:

$('#ctl00_ctl00_ContentMain_rbl').hover(         
    function (){
        $('#div1').dialog({title: "some title"});
        $('#div1').dialog('open');
    }
);

正确的clientid是:ctl00_ctl00_ContentMain_rbl_0, ctl00_ctl00_ContentMain_rbl_1, ctl00_ctl00_ContentMain_rbl_2

代码不起作用,当我尝试读取它时,它没有给我正确的ClientID名称...这个问题的另一种方法是什么,定义类名???

   $('#<%= rbl.ClientID %>').hover(   
            function (){
                $('#div1').dialog({title: "Float Images Left"});
                $('#div1').dialog('open');
            }            );

3 个答案:

答案 0 :(得分:2)

是的,最简单的方法是使用jQuery为要查找的所有组件定义class

另一种方法是使用attribute ends with selector

$('[id$="_rbl"]').hover( // Etc.

但如果你在另一个容器中有另一个rbl,它可能会导致问题。

请记住,RadioButtonList中的项目将是输入,然后您可以执行:

$('[id$="_rbl"] input:enabled').hover( // Etc.

因此,如果您为RadioButtonList定义了一个类:

$(".myclass input:enabled").hover( // Etc.

答案 1 :(得分:0)

如果您想在单选按钮上执行某些操作,则必须定位输入

$('#<%= rbl.ClientID %> input').hover(   
    function (){
        $('#div1').dialog({title: "Float Images Left"});
        $('#div1').dialog('open');
    }
);

答案 2 :(得分:0)

这就是我如何实现我想要的目标。

为每个列表项定义类

 <asp:RadioButtonList runat="server" ID="rbl" RepeatDirection="Horizontal">
        <asp:ListItem class="rb0" Text="None" Value="0" Selected="True" Enabled="true" />
        <asp:ListItem class="rb1" Text="Float" Value="1" Selected="False" Enabled="true" />
        <asp:ListItem class="rb2" Text="Float1" Value="2" Selected="False" Enabled="true" />
        <asp:ListItem class="rb3" Text="Center" Value="3" Selected="False" Enabled="false" />
    </asp:RadioButtonList>