Применить щелчок мыши к ячейкам, кроме одной - PullRequest
0 голосов
/ 26 мая 2010

У меня есть страница 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 родительского повторителя. Если я нажму на кнопку ссылки, то и меня уволят, и весь ад сломается. Есть ли какой-нибудь способ воздержаться от того, чтобы к элементу linkbutton или linkbutton относилось событие onclick? Единственный гарантированный способ, которым я могу придумать, это настроить onclick для каждой ячейки таблицы, но это было бы довольно уродливо, особенно если я использую и в повторителе.

1 Ответ

0 голосов
/ 26 мая 2010

Вы можете добавить событие onclick в LinkButton, которое отменяет распространение события click, чтобы событие 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>
...