我有一个复选框,应该转到codebehind文件中的方法。 这是我的aspx代码:
<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 :(得分:3)
您没有使用ServerSide控件,因此onclick
事件正在尝试触发JavaScript事件。
您可以更改代码以使用ServerSide控件,例如
<asp:CheckBox id="fullscreen_chbx" OnCheckedChanged="fullscreen_chbx_Click" runat="server"/>
请注意,ServerSide控件没有onclick
事件处理程序,因此您需要使用OnCheckedChanged
。您可能还希望将AutoPostBack="True"
添加到控件中,以便立即触发事件。
<asp:CheckBox id="fullscreen_chbx" OnCheckedChanged="fullscreen_chbx_Click" runat="server" AutoPostBack="True" />
然后这将触发您的服务器事件。如果您要向此添加客户端事件,则可以随时添加OnClientClick="somefunction();"
答案 1 :(得分: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
{
}
}
答案 2 :(得分:0)
仅当复选框的AutoPostBack属性指定为值&#34; true&#34; 时,的AutoPostBack =&#34;真&#34;
复选框控件的事件才会引发
答案 3 :(得分: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"/>