将tablerow单击应用于除一个之外的所有单元格

时间:2010-05-26 19:14:11

标签: asp.net asp.net-3.5 repeater linkbutton

我有一个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,而LinkBut​​ton事件在父转发器的ItemCommand处理程序中处理。如果我点击链接按钮,两个都会被解雇,所有地狱都会松动。是否有任何方法可以禁止链接按钮或链接按钮单元使onclick事件适用于它?我能想到的唯一有把握的方法就是为每个表格单元设置onclick,但这非常难看,特别是因为我正在使用和在转发器中。

1 个答案:

答案 0 :(得分:0)

您可以向LinkBut​​ton添加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>