我有一个ASP.NET页面,它使用转发器来填充网格。最终会有十几个列,其中一个是一个执行回发的链接按钮(它会删除行)。我希望可以单击该行的其余部分并导航到我在运行时设置的指定URL。
以下是转发器中一行的代码:
<tr class='normal' onmouseover="this.className='highlight'" onmouseout="this.className='normal'"
onclick="location.href='<%#DataBinder.Eval(Container.DataItem, "url") %>';">
<td><%# DataBinder.Eval(Container.DataItem, "parcel")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "address")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "unitName")%></td>
<td><%# DataBinder.Eval(Container.DataItem, "countyName")%></td>
<td><asp:LinkButton CommandName="remove" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "parcel")%>' ID="LinkButton0" runat="server">Remove</asp:LinkButton></td>
</tr>
如您所见,我有onclick直接导航用户到指定的url,而LinkButton事件在父转发器的ItemCommand处理程序中处理。如果我点击链接按钮,两个都会被解雇,所有地狱都会松动。是否有任何方法可以禁止链接按钮或链接按钮单元使onclick事件适用于它?我能想到的唯一有把握的方法就是为每个表格单元设置onclick,但这非常难看,特别是因为我正在使用和在转发器中。
答案 0 :(得分:0)
您可以向LinkButton添加onclick事件,以取消click事件的传播,以便不触发TR click事件。已经有一段时间了,因为我在jQuery / MooTools之外使用了它,但这应该适合你。
onclick="window.event.cancelBubble=true;"
<asp:LinkButton CommandName="remove" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "parcel")%>' ID="LinkButton0" runat="server" onclick="window.event.cancelBubble=true;">Remove</asp:LinkButton>