首页 > 解决方案 > 从 .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。有可能吗?

有人可以帮助我吗?

标签: asp.netwebforms

解决方案


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";
    }
}

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


推荐阅读