为网格中的复选框赋值 header

assign a value to checkbox in a grid header

我有以下网格

<asp:GridView ID="grdDWlocations" CssClass="table table-hover table-striped" runat="server" GridLines="None" ShowHeaderWhenEmpty="True"
    EmptyDataText="No data found..." AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField HeaderText="" Visible="true">
            <HeaderTemplate>
                <asp:CheckBox ID="allDWlocchk" runat="server" Checked="true" Width="10px" onclick="CheckAllgrdReqDW(this)"></asp:CheckBox>
            </HeaderTemplate>
            <ItemTemplate>
                <asp:CheckBox ID="chk_DWlocReq" runat="server" Checked="true" Width="5px" OnCheckedChanged="chk_Req_CheckedChangedDW_Click" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Code">
            <ItemTemplate>
                <asp:Label ID="lbl_DWCode" runat="server" Text='<%# Bind("Ml_loc_cd") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Description">
            <ItemTemplate>
                <asp:Label ID="lbl_DWDescription" runat="server" Text='<%# Bind("Ml_loc_desc") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

我想为 'allDWlocchk' 分配一个值,即 header 检查,

如何在隐藏代码中执行此操作

我尝试了这个 none 的东西

尝试 1:

((CheckBox)(grdDWlocations).FindControl("allDWlocchk")).Checked = false;  

尝试 2:

((CheckBox).FindControl("allDWlocchk")).Checked = false; 

您走在正确的轨道上,FindControl 是正确的方向。但问题是它只适用于直接children。因此,您需要在 header 行中搜索,而不是在页面或 GridView 上搜索。可用作 GridView 属性。所以:

GridViewRow headerRow = grdDWlocations.HeaderRow;
((CheckBox)headerRow.FindControl("allDWlocchk")).Checked = false;