Search code examples
c#jqueryasp.netrepeaterlinkbutton

disable/hide all link button using jquery in repeater


I have a repeater which will have a link button per row here is the code:

<asp:Repeater ID="rpt_OutstandingBCsForClient" runat="server">
   <ItemTemplate>
        <div class="pay">
            <table>
                 <tr>
                     <td>
                      <div style="width: 230px;">
                <asp:Label ID="lbl_Len" runat="server" ></asp:Label>
                 </div>
                   </td>
                  <td align="left">
                  <div style="width: 80px;">
            <asp:LinkButton ID="lnkbtn_Remove" runat="server">Remove</asp:LinkButton>

            </div>
              </td>                            
               </tr>
           </table>
          </div>
        </ItemTemplate>
      </asp:Repeater>

I want to disable or hide all Linkbuttons with id 'lnkbtn_Remove' on button click, so i have done this but still it doesn't work, if put an alert after var linkButton1 I get an object, but it doesn't disable or hide the link button:

$("input[id$='btnP']").click(function (e) {
                var linkButton1 = $('[id*="lnkbtn_Remove"]'); 
                $.ajax({
                    type: "POST",
                    url: "MyPage.aspx/Take",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",

                    success: function (msg) {
                        if (msg.d.indexOf('https://') > -1) {

                            $('#lnkbtn_Remove').attr("disabled", true);
                        }
                        else {

                        }
                    }

                });

            e.preventDefault();
        });

Solution

  • Your id will be changed by asp.net for each link button. Use wild cards.

    Change

    $('#lnkbtn_Remove').attr("disabled", true);
    

    To

    $('[id*=lnkbtn_Remove]').attr("disabled", true);