从 .NET 中 bootstrap 的输入复选框标记中获取值

Get value from input checkbox tag from bootstrap in .NET

我正在尝试将 Bootstrap (devoops.me) 中的复选框与 ASP.NET.

一起使用

在我的页面上:

<div class="row">
    <div class="col-lg-12">
        <div class="checkbox">
            <label>
                <input type="checkbox" name="testme" />some text for checkbox to choose
                <i class="fa fa-square-o"></i>
            </label>
        </div>
    </div>
</div>
<div class="row">
    <div class="col-lg-12">
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/><br />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
</div>

在服务器端:

protected void Button1_Click(object sender, EventArgs e)
    {
        HtmlInputCheckBox chk = (HtmlInputCheckBox)this.Form.FindControl("testme");
        if (chk.Checked == true)
        {
            Label1.Text = "YES it's checked";
        }
    }

但我得到的都是空值。

我不想使用 jQuery 或 JavaScript。有可能吗?

有人可以帮我吗?

FindControl 搜索 ASP.NET 控件。为了将复选框注册为 asp.net 控件,请提供一个 ID 并添加 runat="server" 属性。

<div class="row">
    <div class="col-lg-12">
        <div class="checkbox">
            <label>
                <input type="checkbox" id="testme" runat="server" />some text for checkbox to choose
                <i class="fa fa-square-o"></i>
            </label>
        </div>
    </div>
</div>
<div class="row">
    <div class="col-lg-12">
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/><br />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
</div>

服务器端代码可以简化如下:

protected void Button1_Click(object sender, EventArgs e)
{
    if (testme.Checked == true)
    {
        Label1.Text = "YES it's checked";
    }
}

由于checkbox是一个注册控件,在后面的代码中是可以直接访问的。