События OnClick не работают на странице ASP.NET

У меня есть страница aspx, которая наследуется от главной страницы. На главной странице у меня есть кнопка, общая для каждой страницы решения.

<div class="btn_general_mid">
<asp:Button 
    ID="btnMainSearch" 
    ValidationGroup="MainSearch" 
    OnClientClick="CheckSearchTextBox()"
    CausesValidation="true" 
    runat="server" 
    OnClick="btnMainSearch_Click"  
    CssClass="search_btn_submit"
    Text="Search" />
</div>

Здесь CheckSearchTextBox() — это функция javascript, а btnMainSearch_Click — это событие, которое обрабатывает код, стоящий за частью кнопки.

На определенной странице событие нажатия этой кнопки btnMainSearch_Click не запускается. (Отладчик не доходит до этого в коде)

Во время выполнения (при проверке с помощью Firebug) это сегмент кода, сгенерированный для кнопки.

<div class="btn_general_mid">
<input id="ctl00_btnMainSearch" 
class="search_btn_submit" 
type="submit"    
onclick="CheckSearchTextBox();WebForm_DoPostBackWithOptions(new  WebForm_PostBackOptions("ctl00$btnMainSearch", "", true, "MainSearch", "", false, false))" 
value="Search" 
name="ctl00$btnMainSearch"></div>

Фактически на других страницах, где эта кнопка работает нормально, для этой кнопки генерируется такой же вывод html. Я что-то упустил здесь?


person JCTLK    schedule 20.11.2014    source источник
comment
Ваша функция Javascript CheckSearchTextBox() случайно не вызывает ошибку? Это предотвратит последующую обратную передачу ASP.NET.   -  person Jarek Piórkowski    schedule 20.11.2014
comment
Нет. На самом деле эта часть работает нормально.. :-(   -  person JCTLK    schedule 20.11.2014
comment
Сделан ли HTTP-запрос обратной передачи? Если да, то какова реакция? Проверьте в консоли разработчика браузера.   -  person Jarek Piórkowski    schedule 20.11.2014


Ответы (2)


Проверьте, есть ли какие-либо ошибки проверки, потому что это не позволит запустить событие на стороне сервера btnMainSearch_Click.

person Sandeep    schedule 20.11.2014
comment
Я не могу отблагодарить вас за это .. Я застрял на этом на весь день - person Izzy; 04.03.2016

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

CausesValidation="false"
person Amer Zafar    schedule 20.11.2014
comment
что, если я хочу это с проверкой при нажатии кнопки отправки? - person hud; 29.07.2015
comment
Моя проблема заключалась в том, что у меня была модальная форма, а кнопка пропускала ValidationGroup (была проблема с проверкой формы в фоновом режиме). Добавление CausesValidation=false может помочь в отладке подобных проблем. - person machj; 08.02.2017