gridview отменяет выбор строки, когда строка имеет элементы управления - PullRequest
0 голосов
/ 11 августа 2011

У меня есть сетка в ASP.net 2.0 с небольшим количеством кода JavaScript, который при нажатии на строку будет выбран.

cell.Attributes.Add("onClick", Page.ClientScript.GetPostBackClientHyperlink(this, "Select$" + row.RowIndex.ToString()));

Этот код отлично работает, но когда у меня есть ссылка или кнопка в строке вида сетки и как только она будет нажата, произойдет обратная передача и переопределит действие ссылки или кнопки.

Мой вопрос, знает ли кто-нибудь решение отменить событие javascript onclick строки?

Следующие решения, которые я неудачно протестировал:

  • return false;
  • jQuery с event.stopImmediatePropagation работает, но я использую нумерацию страниц, чтобы событие не привязывалось к новой странице.
  • jQuery с .live("click", function(){...}); работает с нумерацией страниц, но event.stopImmediatePropagation не поддерживается в live и delegate.

1 Ответ

0 голосов
/ 11 августа 2011

Хорошо, я нашел следующее решение:

Поместите это в элемент управления в виде сетки:

... onClientClick="return ShowSomething(this);" ...

И это на странице / заголовке:

function ShowSomething(elm) {
    var e = new jQuery.Event(window.event);
    e.preventDefault();
    e.stopPropagation();
    e.stopImmediatePropagation();  // Stop now!!!

    var that = jQuery(elm);

    return false;
}
...