ASP.NET jQuery AutoComplete - текстовое поле, не отвечающее после первого поиска

Объявление класса должно быть в заголовочном файле (Или в исходном файле если не совместно использовано).
Файл: foo.h

class foo
{
    private:
        static int i;
};

, Но инициализация должен быть в исходном файле.
Файл: foo.cpp

int foo::i = 0;

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

Примечание: Matt Curtis: указывает, что C++ позволяет упрощение вышеупомянутого, если статическая членская переменная имеет тип интервала константы (например, int, bool, char). Можно тогда объявить и инициализировать членскую переменную непосредственно в объявлении класса в заголовочном файле:

class foo
{
    private:
        static int const i = 42;
};
5
задан Tushar Gupta - curioustushar 28 July 2013 в 16:14
поделиться

2 ответа

Я думаю, вы столкнулись с классической проблемой с элементами управления ASP.NET UpdatePanel и jQuery. Проблема в следующем: код jQuery (в вашем случае автозаполнение, но это может быть что угодно) отлично работает при загрузке страницы, но перестает работать после частичной обратной передачи. Если это так, вам нужно понять несколько вещей об использовании jQuery с элементами управления UpdatePanel.

Во-первых, все привязки событий, определенные в $ (document) .ready, перестают работать после первой частичной обратной передачи (и я предполагаю что нажатие вашей кнопки вызывает частичную обратную передачу). Именно так работает ASP.NET. Так как же это исправить? Что ж, есть несколько способов решить эту проблему. Типичная рекомендация - заменить $ (document) .ready собственным событием ASP.NET AJAX pageLoad . Это может решить одну проблему, но это, скорее всего, вызовет больше проблем, потому что теперь вы будете привязывать события к каждой частичной обратной передаче, вызывая повторное выполнение обработчиков событий для одного события. Вы можете решить некоторые проблемы, вызвав unbind для вашего селектора перед выполнением любых привязок. Для простых привязок событий вы можете продолжать использовать $ (document) .ready с функцией live (вместо щелчка, наведения и т. Д.).

Я не использовал плагины jQuery с UpdatePanel, поэтому я не могу сказать наверняка, что вам нужно делать, но как только вы поймете, что происходит, вам не составит труда найти правильный подход. Чтобы узнать больше об этой проблеме и возможных решениях, прочтите статью Дэйва Уорда $ (document) .ready () и pageLoad () - это не одно и то же! (статья включает несколько примеров).

Вы можете решить некоторые проблемы, вызвав unbind для вашего селектора перед выполнением любых привязок. Для простых привязок событий вы можете продолжать использовать $ (document) .ready с функцией live (вместо щелчка, наведения и т. Д.).

Я не использовал плагины jQuery с UpdatePanel, поэтому я не могу точно сказать, что вам нужно делать, но как только вы поймете, что происходит, вам не составит труда найти правильный подход. Чтобы узнать больше об этой проблеме и возможных решениях, прочтите статью Дэйва Уорда $ (document) .ready () и pageLoad () - это не одно и то же! (статья включает несколько примеров).

Вы можете решить некоторые проблемы, вызвав unbind для вашего селектора перед выполнением любых привязок. Для простых привязок событий вы можете продолжать использовать $ (document) .ready с функцией live (вместо щелчка, наведения и т. Д.).

Я не использовал плагины jQuery с UpdatePanel, поэтому я не могу сказать наверняка, что вам нужно делать, но как только вы поймете, что происходит, вам не составит труда найти правильный подход. Чтобы узнать больше об этой проблеме и возможных решениях, прочтите статью Дэйва Уорда $ (document) .ready () и pageLoad () - это не одно и то же! (статья включает несколько примеров).

t использовал плагины jQuery с UpdatePanel, поэтому я не могу точно сказать, что вам нужно делать, но как только вы поймете, что происходит, не составит труда найти правильный подход. Чтобы узнать больше об этой проблеме и возможных решениях, прочтите статью Дэйва Уорда $ (document) .ready () и pageLoad () - это не одно и то же! (статья включает несколько примеров).

t использовал плагины jQuery с UpdatePanel, поэтому я не могу точно сказать, что вам нужно делать, но как только вы поймете, что происходит, не составит труда найти правильный подход. Чтобы узнать больше об этой проблеме и возможных решениях, прочтите статью Дэйва Уорда $ (document) .ready () и pageLoad () - это не одно и то же! (статья включает несколько примеров).

10
ответ дан 13 December 2019 в 19:33
поделиться

Я предлагаю вам использовать такой инструмент, как Firebug , с помощью которого вы можете точно определить, где возникает ошибка. Вы можете отслеживать запросы ajax, чтобы узнать, действительно ли он прекратил выполнение запросов, полностью ли они выполняются и какой ответ вы получите. Вы также можете использовать его для отладки javascript во время выполнения, и он часто выдает сообщения об ошибках, которые вы могли бы не заметить в противном случае. Похоже, именно тот инструмент, который вам нужен в данный момент.

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

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

1
ответ дан 13 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: