如何通过单击一个按钮在每一行中设置复选框

本文关键字:一行 复选框 设置 一个 单击 何通过 按钮 | 更新日期: 2023-09-27 18:32:45

我试图创建附加到按钮的事件,以遍历网格视图的每一行,以将选中的值更改为等于 true。一旦我单击此按钮,它如何使它标记所有事情都为真?

这是我开始使用的代码:

foreach (GridViewRow row in GridView1.Rows)
{ 
    //I get stuck at this part
    row.Cells[9].FindControl("Overwrite")
}

如何通过单击一个按钮在每一行中设置复选框

foreach (GridViewRow row in GridView1.Rows)
{ 
    CheckBox b = row.Cells[9].FindControl("Overwrite") as CheckBox; 
    b.Checked = true;
}

GridView 标记中,如果使用TemplateField来保存CheckBox控件,则可以编写更简单的FindControl代码来实际查找TextBox控件,如下所示:

<asp:GridView ID="GridView1" runat="server" Visible="False">
    <Columns>
        <asp:TemplateField HeaderText="Action Item">
            <ItemTemplate>
                <asp:CheckBox ID="Overwrite" runat="server"></asp:CheckBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

现在,在代码隐藏中,您可以执行以下操作:

foreach (GridViewRow row in GridView1.Rows)
{
    // Only check data rows, ignoring header or footer rows
    if (row.RowType == DataControlRowType.DataRow)
    { 
        CheckBox b = row.FindControl("Overwrite") as CheckBox; 
        if(b != null)
        {
            b.Checked = true;
        }
    }
}

注意:您不再需要Cells索引,因为FindControl可以搜索整行以查找名为 Overwrite 的控件。

 <div class="form-group" style="display:flex; justify-content:center">
   <button class="btn btn-lg btn-primary mb-3" type="submit">Sign in</button>
     <div class="custom-control custom-checkbox">
       <div class="custom-control custom-checkbox">
        <input type="checkbox" class="custom-control-input" id="customCheck1" checked="">
       <label class="custom-control-label" for="customCheck1">Remember me</label>
    </div>
  </div>
 </div>

这是一个由样式组成的示例 HTML。你可以这样使用它/这不是这个问题的 ans