0

我有一个使用中继器来填充网格的 ASP.NET 页面。最终会有十几个列,其中一个是执行回发的链接按钮(它删除行)。我希望该行的其余部分可点击并导航到我在运行时设置的指定网址。

这是转发器中一行的代码:

<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,但这会非常难看,特别是因为我正在使用和在转发器中。

4

1 回答 1

0

您可以向您的 LinkBut​​ton 添加一个 onclick 事件,该事件取消点击事件的传播,因此不会触发 TR 点击事件。自从我在 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>
于 2010-05-26T19:23:39.520 回答