我在asp.net中的复选框没有';不要使用codebehind文件

本文关键字:文件 codebehind net asp 复选框 我在 | 更新日期: 2023-09-27 18:00:52

我有一个复选框,它应该指向codeehind文件中的一个方法。这是我的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出现错误?

我在asp.net中的复选框没有';不要使用codebehind文件

您没有使用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();"

将代码从更改为此

<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"/>

这是因为您使用的是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
        {
        }
}

AutoPostBack="True">

只有当复选框的AutoPostBack属性指定为值"true"时,才会引发Checkbox控件的事件。