C# 在repeater中使用jquery禁用/隐藏所有链接按钮
我有一个中继器,每行有一个链接按钮,代码如下:C# 在repeater中使用jquery禁用/隐藏所有链接按钮,c#,jquery,asp.net,repeater,linkbutton,C#,Jquery,Asp.net,Repeater,Linkbutton,我有一个中继器,每行有一个链接按钮,代码如下: <asp:Repeater ID="rpt_OutstandingBCsForClient" runat="server"> <ItemTemplate> <div class="pay"> <table> <tr> <td>
<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>
asp.net将为每个链接按钮更改您的id。使用通配符 改变
$('#lnkbtn_Remove').attr("disabled", true);
到
因为链接按钮是服务器端控件,所以它们的客户端ID不是lnkbtn_Remove,而是somethingsomethingLNKBTN_Remove
因此,请尝试$'[id$=lnkbtn\u Remove]'而不是$'lnkbtn\u Remove'。id$=表示id以结尾
除了选择器问题,您显然也无法禁用链接按钮,因此需要将其删除或隐藏。尝试为按钮设置CSS类,如linkButtonRemove,以便中继器中的所有链接按钮都具有相同的类。我认为这比在这里使用ID更好 然后在jquery中尝试隐藏找到的元素:
$('.linkButtonRemove').hide();
或者通过添加css样式
$('.linkButtonRemove').css('display', 'none');
OnButton如果要禁用此按钮,请单击,然后可以使用
$('[id*=lnkbtn_Remove]').attr("disabled", true);
或者,如果你想隐藏它,那么你可以使用
$("#lnkbtn_Remove").hide();
我可以看到firebug on button中的disabled属性在单击后设置为true,但仍然可以单击该按钮..AFAIK要禁用锚点,您需要删除属性href或在其单击时使用preventDefault尝试此操作,但我没有看到使用Firefox的disabled属性问题还可能是您无法禁用链接按钮?尝试文字。删除并查看按钮是否消失。使用隐藏函数$'[id*=lnkbtn_Remove]'可以立即执行此操作。隐藏'slow';很好,所以选择器至少可以工作;但是,我认为您只能通过清除链接按钮的OnClick行为来禁用链接按钮。
$('#lnkbtn_Remove').click(function(){return false;})
$('[id*=lnkbtn_Remove]').attr("disabled", true);
$("#lnkbtn_Remove").hide();