如何根据 SQL table 行值将复选框添加到 GridView 和 select/deselect

How to add a checkbox to a GridView and select/deselect based on a SQL table row value

<asp:GridView ShowHeaderWhenEmpty="false" ID="gvSubTasks" runat="server" AutoGenerateColumns="false" ClientIDMode="Static">
    <Columns>
        <asp:BoundField DataField="SN" HeaderText="SN" />
        <asp:BoundField DataField="ST" HeaderText="ST" />
        <%-- ADD ANOTHER COLUMN HERE WITH THE CHECKBOX --%>
    </Columns>
</asp:GridView>

code-behind:

string strST = @"SELECT 
            ,A345 'SN'
            ,M3w 'ST'
            ,A667 'CT' -- 0 for not complete and 1 for complete
        FROM [mydb].[dbo].[table1]";

public DataTable RT()
{
    using (SqlConnection con = new SqlConnection(gloString))
    {
        using (SqlCommand cmd = new SqlCommand())
        {
            cmd.CommandText = strST;

            using (SqlDataAdapter sda = new SqlDataAdapter())
            {
                cmd.Connection = con;
                sda.SelectCommand = cmd;

                using (DataSet ds = new DataSet())
                {
                    DataTable dt = new DataTable();
                    sda.Fill(dt);

                    return dt;
                }
            }
        }
    }
}

gvSubTasks.DataSource = RT();
gvSubTasks.DataBind();

我如何在我的 gridview 每行中添加一个复选框,带有 header "Complete" 并基于 CT,pre-select 如果复选框是 1 而不是 select 复选框,如果它是 0

为带有复选框的列添加此项

<asp:TemplateField HeaderText="Complete">
  <ItemTemplate>
  <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("CT").ToString() == "1" ? true : false %>' />
  </ItemTemplate>
 <ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>

只需添加

  <asp:CheckBoxField DataField="CT" HeaderText="CT" </asp:CheckBoxField> 

如果 CT 是 CHAR 值,您可以像 CASE WHEN CT = '1' THEN 1 ELSE 0 END as CT

这样修改您的语句