单击列表视图中的单击asp.net按钮

时间:2016-10-10 12:19:18

标签: jquery asp.net

<asp:ListView runat="server" ID="lsvAccessMode" ClientIDMode="Static" OnItemDataBound="lsvAccessMode_ItemDataBound">
     <ItemTemplate>
        <div class="col-xs-6 col-md-4 col-xs-12">
            <asp:RadioButton runat="server" clientidmode="static" CssClass="customSelectBox disabled" ID="rbAccessMode" GroupName="accessMode" Enabled='<%#Convert.ToBoolean(Eval("IsSelected"))%>'  />
            <div class="customBox disabled" id="customBox">
                <strong><%# Eval("Decode1") %></strong><br>
                <img src="<%# Eval("ImagePath") %>" style="height: 80px"><br>
                <span class="help-block"><%# Eval("Decode2") %></span>
            </div>
        </div>
     </ItemTemplate>
</asp:ListView>

我上面的代码如下。因此,当我单击上面的其中一个按钮时,它会向其附加一个类。但我面临以下问题,我不知道要插入$(' ').click函数的id部分。

任何人都可以提供帮助吗?

4 个答案:

答案 0 :(得分:0)

为什么不使用css类?

// attach the handler on the DOM to include all dynamically generated controls, too $(document).on('click', '.customSelectBox', function() { // to get the one that was clicked var $this = $(this); // do the rest });

e.g。

{{1}}

答案 1 :(得分:0)

使用下面的部分ID

$('[id*="rbAccessMode"]').click(
    function() { $(this).addClass("yourClass");
});

答案 2 :(得分:0)

由于以下原因,您无法使用该ID为click事件分配函数。

您使用ClientIDMode="Static",因此页面上会有多个ID具有相同的值。

即使您要删除ClientIDMode="Static",您仍然无法使用ID rbAccessMode,因为它位于重复数据的控件中,rbAccessMode将变成这样的内容lsvAccessMode_rbAccessMode_2以确保没有重复的ID。

删除所有ClientIDMode="Static"属性,并根据类名指定click事件。

    <script type="text/javascript">
        $(".customSelectBox").click(function () {
            $(this).addClass("yourClass");
        });
    </script>

答案 3 :(得分:0)

谢谢大家,我设法在你的帮助下解决了这个问题。感谢Joel和Ted的建议,我改变了代码的DOM结构。感谢VDWWD,我删除了ClientIDMode =“Static”并使其正常工作。以下是我的工作代码。

    $(document).on('click', '#selectorBox', function () {
        $(this).children().addClass('active');
    });


<asp:ListView runat="server" ID="lsvAccessMode" ClientIDMode="Static" OnItemDataBound="lsvAccessMode_ItemDataBound">
 <ItemTemplate>
     <div id="selectorBox" class="col-xs-6 col-md-4 col-xs-12" runat="server" clientIDMode="Static">
         <asp:RadioButton runat="server" CssClass="customSelectBox disabled" ID="rbAccessMode" GroupName="accessMode" Enabled='<%#Convert.ToBoolean(Eval("IsSelected"))%>'  />
             <div class="customBox disabled" id="customBox">
                <strong><%# Eval("Decode1") %></strong><br>
                   <img src="<%# Eval("ImagePath") %>" style="height: 80px"><br>
                       <span class="help-block"><%# Eval("Decode2") %></span>
              </div>
      </div>
</ItemTemplate>

我在父类中添加了一个额外的ID而不是直接调用该按钮,我调用了它的父节点然后使用.children()方法向下导航。再次感谢大家。希望我的帖子可以帮助人们,特别是初学者,他们是asp.net的新手。