在转发器中使用jquery禁用/隐藏所有链接按钮

时间:2012-12-06 09:38:58

标签: c# jquery asp.net repeater linkbutton

我有一个转发器,每行有一个链接按钮,这里是代码:

<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>

我想禁用或隐藏所有ID为&#39; lnkbtn_Remove&#39;的链接按钮。按钮点击,所以我已经完成了这一点,但它仍然无法正常工作,如果在var linkBut​​ton1之后发出警报我得到一个对象,但它没有禁用或隐藏链接按钮:

$("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();
        });

5 个答案:

答案 0 :(得分:3)

由于您的LinkButton是服务器端控件,因此其客户端ID不会是lnkbtn_Remove,而是somethingsomethingsomethinglnkbtn_Remove

因此,请尝试$('[id$="lnkbtn_Remove"]')而不是$('#lnkbtn_Remove')id$=表示“ID以”结尾。


除选择器问题外,您显然也无法停用LinkButton,因此您需要.remove().hide()

答案 1 :(得分:2)

OnbuttonClick如果要禁用此按钮,则可以使用...

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

或者如果你想隐藏它,那么只需使用

$("#lnkbtn_Remove").hide(); 

答案 2 :(得分:1)

每个链接按钮都会通过asp.net更改您的ID。使用外卡。

更改

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

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

答案 3 :(得分:1)

尝试为您的按钮设置C​​SS类,例如“linkBut​​tonRemove”,因此转发器中的所有链接按钮都将具有相同的类。我认为这比在这里使用ID更好......

然后在jquery中尝试隐藏找到的元素:

    $('.linkButtonRemove').hide();

或通过添加css样式

     $('.linkButtonRemove').css('display', 'none');

答案 4 :(得分:0)

$('#lnkbtn_Remove').click(function(){return false;})