asp.net - 为选中的 CheckBoxField 设置默认 bool 值

标签 asp.net .net gridview

我在 ASP.NET 中有一个 GridView,它有一个 CheckBoxField 列,该列从数据库中的查询绑定(bind)到 DataField。如果值为 false,我需要能够检查它,如果值为 true,则不检查。

这有点不标准,因为它完全倒退了大多数复选框控件的工作方式,但有没有办法做到这一点?

最佳答案

有多种方法可以解决这个问题。你可以试试这个:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        foreach (Control ctrl in e.Row.Cells[0].Controls)
        {
            if (ctrl.GetType().Name == "CheckBox")
            {
                CheckBox chk = (CheckBox)ctrl;
                chk.Checked = !chk.Checked;
            }
        }
    }
}

请记住在您的复选框字段所在的位置添加正确的单元格。

另一种方法是添加一个 TemplateField:

<asp:TemplateField>
    <ItemTemplate>
        <asp:CheckBox ID="CheckBox1" runat="server" 
            Checked='<%# !Convert.ToBoolean(Eval("Status")) %>' />
    </ItemTemplate>
</asp:TemplateField>

您还可以在从数据库服务器获取数据源后对其进行修改,因此如果您在其他地方以正常方式使用它,则无需修改查询。假设您有一个项目的通用列表:

myItems.ForEach(item => item.Status = !item.Status);

额外的 jQuery 版本:

<script>
    $(function () {
        $("#<%=GridView1.ClientID %> input[type='checkbox']").each(function () {
            $(this).prop("checked", !$(this).prop("checked"));
        });
    });
</script>

关于asp.net - 为选中的 CheckBoxField 设置默认 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15688593/

相关文章:

c# - 下载 PhantomJS 生成的 pdf 时遇到问题

javascript - 如何在 ASP.Net 中连接内部 mdf 表

asp.net - 连接到ElasticSearch .net

安卓 GridView 安卓 :numColumns ="auto_fit" always create only two columns

java - GridView 不符合 Relativelayout 对齐方式

android - 如何使用 GridView 构建此布局?

asp.net - 应用程序相关 URL

c# - 使用参数启动进程

c# - 减小图像大小 C#

.net - 我可以在 .NET 应用程序中使用较小的源数据集来模拟内存稀缺情况以找出内存泄漏吗?