Проблема с расширением jQuery tablesorter с несколькими щелчками мыши?

StackOverflow https://stackoverflow.com/questions/580996

Вопрос

Хорошо, у меня есть таблица, созданная GridView, и к ней прикреплен сортировщик таблиц, все работает нормально.

Затем я поместил его в панель обновления и добавил код для повторной привязки к обратной передаче. Вот мой скрипт:

function loadEvents() { $("table[id$='gv']").tablesorter(); }
$(document).ready(function() { loadEvents(); });
function reBind() {
    if (Sys.WebForms.PageRequestManager) {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function() { loadEvents(); });
    }
}

И это прекрасно работает, я загружаю GridView, сортировка работает.

  • Я нажимаю кнопку, которая отправляет ответ, все работает нормально.
  • я нажимаю снова и первый клик работает на сортировку, сортировку, но она застревает - там - я могу менять столбцы, но она никогда не будет сортировать?Но потом...
  • Я нажимаю еще раз, и все работает нормально

Это продолжается, работая через каждый щелчок...Любые идеи?

Это было полезно?

Решение

Ваша проблема похожа на проблему на стороне сервера - сортировка работает только после того, как таблица была привязана в том же запросе.В противном случае подключение к событию для сортировки ничего не сможет найти.

Конечно, если вы уже связали таблицу, она уже отсортирована, поэтому теперь вам нужно снова получить данные.

Проблемы такого рода являются распространенной проблемой ужасной модели событий страницы .Net.

Самое простое решение — убедиться, что ваша таблица повторно привязана к обратной передаче ajax после загрузки состояния просмотра, но до возникновения событий, а затем снова получить данные после запуска события.Проблема в том, что тогда вы получите данные дважды.

Лучшее решение — избегать использования подключений к событиям .Net в любых динамических элементах страницы.

Подобные проблемы с моделью событий страницы .Net являются одной из причин такого большого интереса к MVC.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top