首页 > 解决方案 > 启用复选框以在 ASP.NET GridView 上可编辑,而无需单击编辑

问题描述

我有一个 GridView,它有一列复选框,是否可以使复选框可编辑,而不必一直单击每一行上的编辑来编辑复选框。

设计图像 GridView

代码

  <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="ItemID" Height="210px" Width="785px">
        <Columns>
            <asp:CommandField ShowEditButton="True" />
            <asp:CheckBoxField DataField="Checkedin" HeaderText="Checkedin" SortExpression="Checkedin" />
            <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
            <asp:BoundField DataField="Dimension" HeaderText="Dimension" SortExpression="Dimension" />
            <asp:BoundField DataField="TrackingNum" HeaderText="TrackingNum" SortExpression="TrackingNum" />
            <asp:BoundField DataField="ItemID" HeaderText="ItemID" InsertVisible="False" ReadOnly="True" SortExpression="ItemID" />
        </Columns>
    </asp:GridView>

C# 代码

 String sql = "SELECT ItemID, Dimension, Description," +
                    " Checkedin FROM Item WHERE TrackingNum =@t";
                OleDbCommand cm1 = new OleDbCommand(sql, dbCon);

                cm1.Parameters.AddWithValue("@s", tr);

                OleDbDataAdapter info = new OleDbDataAdapter();
                info.SelectCommand = cm1;

                DataSet userSet = new DataSet();
                info.Fill(userSet);
                if (userSet.Tables[0].Rows.Count > 0)
                {
                    GridView1.DataSourceID = null;
                    GridView1.DataSource = userSet;
                    GridView1.DataBind();
                }

标签: c#asp.netwebforms

解决方案


是的,它可以TemplateField从设计器转换为 a,也可以Edit Columns...通过在 ASPX 中使用此示例并替换现有CheckBox字段:

<Columns>
    <asp:CommandField ShowEditButton="True" />
    <asp:TemplateField HeaderText="Checkedin" SortExpression="Checkedin">
        <EditItemTemplate>
            <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("Checkedin") %>' />
        </EditItemTemplate>
        <ItemTemplate>
            <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("Checkedin") %>' />
        </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
    <asp:BoundField DataField="Dimension" HeaderText="Dimension" SortExpression="Dimension" />
    <asp:BoundField DataField="TrackingNum" HeaderText="TrackingNum" SortExpression="TrackingNum" />
    <asp:BoundField DataField="ItemID" HeaderText="ItemID" InsertVisible="False" ReadOnly="True" SortExpression="ItemID" />
</Columns>

推荐阅读