2010-05-26 5 views
0

J'ai une page ASP.NET qui utilise un répéteur pour remplir une grille. Il y aura éventuellement une douzaine de colonnes, dont l'une est un bouton qui effectue une publication (elle supprime la ligne). Le reste de la ligne que je veux être cliquable et naviguez vers l'URL spécifiée que je définis au moment de l'exécution.Appliquer le tablerow cliquer sur toutes les cellules sauf une

Voici le code pour une ligne dans le répéteur:

<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> 

Comme vous pouvez le voir, je Navigate onclick directement l'utilisateur à l'URL spécifiée, alors que l'événement LinkButton est piloté dans le répéteur mère de Gestionnaire ItemCommand. Si je clique sur le lien, les deux se font virer, et tout l'enfer se déchaîne. Est-il possible de s'abstenir de la cellule linkbutton ou linkbutton d'avoir l'événement onclick qui s'y applique? Le seul moyen que je puisse imaginer pour faire cela est de mettre en place le onclick pour chaque cellule de table, mais ce serait plutôt moche, surtout depuis que j'utilise et dans le répéteur.

Répondre

0

Vous pouvez ajouter un événement onclick à votre LinkButton qui annule la propagation de l'événement click de sorte que l'événement TR click ne se déclenche pas. Cela fait un moment que je l'ai utilisé en dehors de jQuery/MooTools mais cela devrait marcher pour vous.

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> 
Questions connexes