2015-07-02 1 views
2

У меня есть флажок, который должен перейти к методу в файле codebehind. Это мой ASPX код:Мой флажок в asp.net не работает с файлом codebehind

<input name="fullscreen_chbx" type="checkbox" id="fullscreen_chbx" onclick="fullscreen_chbx_Click" runat="server"/> 

И это мой код отделенного кода. Код должен работать, но даже не выполняет этот метод.

protected void fullscreen_chbx_Click(object sender, EventArgs e) 
{ 
    bool fullscreen = false; 


    if (fullscreen == false) 
    { 
     InputSimulator.SimulateKeyPress(VirtualKeyCode.F11); 
    } 
    else 
    { 
     InputSimulator.SimulateKeyPress(VirtualKeyCode.F11); 


    } 

Там всегда эта ошибка в файле ASPX: ошибка во время выполнения в JavaScript: «fullscreen_chbx_Click» не определено. Почему возникает ошибка с javascript?

+0

Ваш 'fullscreen_chbx_Click' рассматривается как функция JS из HTML. Это связано с тем, что вы не используете элемент управления на стороне сервера. –

+0

Это не так, как это работает. Вы не можете напрямую пересылать обратные методы из JavaScript. –

+0

@MattRowland Но я использовал runat = "server". Разве это не работает? – aha364636

ответ

3

Вы не используете элемент управления ServerSide, поэтому событие onclick пытается отключить событие JavaScript.

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

<asp:CheckBox id="fullscreen_chbx" OnCheckedChanged="fullscreen_chbx_Click" runat="server"/> 

Обратите внимание, что нет ни одного обработчика onclick события для управления ServerSide, так что вам нужно будет использовать OnCheckedChanged. Вы также, вероятно, захотите добавить AutoPostBack="True" в свой контроль, чтобы событие сразу же запускалось.

<asp:CheckBox id="fullscreen_chbx" OnCheckedChanged="fullscreen_chbx_Click" runat="server" AutoPostBack="True" /> 

Тогда это вызовет событие вашего сервера. Если вы хотите добавить на стороне клиента событие это, то вы всегда можете добавить OnClientClick="somefunction();"

+0

Thats мой код сейчас, но это все та же ошибка – aha364636

+0

использовать 'OnCheckedChanged' –

+0

asp: checkbox был прав, но я не включил автоповтор – aha364636

0

AutoPostBack = "True"

событие управления Checkbox возникает, только если свойство AutoPostBack от флажка задается значение "истина".

+0

Не работает, по-прежнему такая же ошибка – aha364636

+0

Вы не используете ASP-контроль, чтобы он не работал, вам нужно активировать атрибут clickclick onclient для вызова javascript funtion –

0

Изменить код от этого

<input name="fullscreen_chbx" type="checkbox" id="fullscreen_chbx" onclick="fullscreen_chbx_Click" runat="server"/> 

к этому

<asp:CheckBox id="fullscreen_chbx" OnClick="fullscreen_chbx_Click" runat="server"/> 
1

Это происходит потому, что ваш используете HTML и он не контролирует сервер.

Чтобы использовать флажок на стороне сервера, вам необходимо добавить код ниже.

<asp:CheckBox ID="fullscreen_chbx" runat="server" AutoPostBack="True" 
oncheckedchanged="fullscreen_chbx_CheckedChanged" /> 

protected void fullscreen_chbx_CheckedChanged(object sender, EventArgs e) 
{ 
     if (fullscreen_chbx.Checked) 
     { 

     } 
     else 
     { 

     } 

} 
Смежные вопросы