0

我有一个中继器,每行都有一个链接按钮,代码如下:

<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 为“lnkbtn_Remove”的所有链接按钮,所以我已经这样做了,但它仍然不起作用,如果在 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();
        });
4

5 回答 5

4

因为您LinkButton的 s 是服务器端控件,所以它们的客户端 ID 不会是lnkbtn_Removebut somethingsomethingsomethinglnkbtn_Remove

因此,尝试$('[id$="lnkbtn_Remove"]')代替$('#lnkbtn_Remove'). id$=意思是“ID 以”结尾。


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

于 2012-12-06T09:44:09.233 回答
2

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

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

或者如果你想隐藏它,那么你可以使用

$("#lnkbtn_Remove").hide(); 
于 2012-12-06T10:04:35.800 回答
1

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

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

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

或通过添加 css 样式

     $('.linkButtonRemove').css('display', 'none');
于 2012-12-06T09:58:30.770 回答
1

asp.net 将为每个链接按钮更改您的 id。使用通配符。

改变

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

$('[id*=lnkbtn_Remove]').attr("disabled", true);
于 2012-12-06T09:43:34.337 回答
0
$('#lnkbtn_Remove').click(function(){return false;})
于 2012-12-06T10:00:35.390 回答