2014-11-20 3 views
1

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

<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() является Java-функция и 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 генерируется для этой кнопки. Я что-то упустил?

+1

Является ли функция Javascript CheckSearchTextBox() причиной ошибки, случайно? Это предотвратит последующую обратную передачу ASP.NET. –

+0

Нет. На самом деле эта часть работает нормально .. :-( – JCTLK

+1

Является ли запрос postback HTTP? Если это так, каков ответ? Проверьте в браузере dev console. –

ответ

6

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

+0

Спасибо Sandeep – JCTLK

+0

I не могу поблагодарить вас за это. Я застрял на нем целый день – Izzy

8

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

CausesValidation="false" 
+1

что делать, если я хочу это с подтверждением в моей кнопке отправки щелчок? – BNN

+0

Моя проблема была в том, что у меня была модальная форма, и кнопка пропустила ValidationGroup (возникла проблема с проверкой формы в фоновом режиме). Добавление CausesValidation = "false" может помочь отладить аналогичные проблемы. – machj