2010-05-26 38 views
0

我有一個使用中繼器填​​充網格的ASP.NET頁面。最終會有十幾個列,其中一個是執行回發的鏈接按鈕(它將刪除該行)。該行的其餘部分我想要點擊並導航到我在運行時設置的指定網址。Apply tablerow click to all cells but one

這裏是在轉發一行代碼:

<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處理程序。如果我點擊鏈接按鈕,兩者都會被解僱,並且所有地獄都會崩潰。有沒有什麼辦法可以放棄linkbutton或linkbutton cell使onclick事件適用於它?我能想到的唯一可行的方法就是爲每個表格單元設置onclick,但這會非常難看,特別是因爲我正在使用並在中繼器中。

回答

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>