向ASP.NET网格视图添加复选框

时间:2017-04-28 13:56:57

标签: c# asp.net gridview datatable

我正在尝试在我的网络应用中启用批量删除。我显示的数据位于GridView,我想添加一列,每列包含一个复选框(或任何替代)。用户可以标记要删除的行,然后一次删除所有行。

当我添加CheckBoxField时,它必须绑定到我自然没有在DataTable中的列。我尝试以编程方式向DataTable添加一个新列,但无论我做什么,它都以只读方式呈现。

将数据从数据库中检索到DataTable中,我将其添加到DataSet并绑定到GridView作为其数据源。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:4)

您可以使用CheckBox向GridView添加TemplateField。您甚至可以在标题中添加一个"选择全部"复选框。您仍然需要一个单独的删除按钮

<asp:GridView ID="GridView1" runat="server">
    <Columns>

        <asp:TemplateField>
            <HeaderTemplate>
                <asp:CheckBox ID="CheckBox1" runat="server" CssClass="headerCheckBox" />
            </HeaderTemplate>
            <ItemTemplate>
                <asp:CheckBox ID="CheckBox2" runat="server" CssClass="rowCheckBox" />
            </ItemTemplate>
        </asp:TemplateField>

    </Columns>
</asp:GridView>

<script type="text/javascript">
    $(document).ready(function () {
        $("#<%= GridView1.ClientID %> .headerCheckBox").change(function (e) {
            $("#<%= GridView1.ClientID %> .rowCheckBox input").each(function () {
                $(this).prop("checked", $(e.target).prop("checked"));
            });
        });
    });
</script>